Добавление рабочих дней к дате

Beginner

This tutorial is from open-source community. Access the source code

Введение

В этом практическом занятии мы изучим функцию JavaScript, которая помогает вычислить дату после добавления заданного количества рабочих дней. Функция использует манипуляцию массивами и итерацию дат для увеличения начальной даты, учитывая выходные дни. Это практическое занятие поможет вам понять, как манипулировать датами в JavaScript и применять бизнес-логику к вычислениям дат.

Функция для добавления рабочих дней к заданной дате

Для вычисления будущей даты путём добавления заданного количества рабочих дней можно использовать функцию addWeekDays. Вот шаги:

  1. Откройте Терминал/SSH и введите node, чтобы начать практиковаться в написании кода.
  2. Используйте функцию addWeekDays, которая принимает два аргумента: startDate и count.
  3. startDate — это дата, с которой вы хотите начать добавлять рабочие дни.
  4. count — количество рабочих дней, которое вы хотите добавить к начальной дате.
  5. Функция строит массив с использованием метода Array.from() и устанавливает его длину равной количеству рабочих дней, которое нужно добавить.
  6. Метод Array.prototype.reduce() используется для итерации по массиву, начиная от startDate, и увеличения его с использованием Date.prototype.getDate() и Date.prototype.setDate().
  7. Функция проверяет, является ли текущая date выходным днём или нет.
  8. Если текущая date является выходным днём, функция обновляет её, добавив один или два дня, чтобы сделать её рабочим днём.
  9. Функция не учитывает официальные праздники.
const addWeekDays = (startDate, count) =>
  Array.from({ length: count }).reduce((date) => {
    date = new Date(date.setDate(date.getDate() + 1));
    if (date.getDay() % 6 === 0)
      date = new Date(date.setDate(date.getDate() + (date.getDay() / 6 + 1)));
    return date;
  }, startDate);

Вот несколько примеров использования функции addWeekDays:

addWeekDays(new Date("Oct 09, 2020"), 5); // 'Oct 16, 2020'
addWeekDays(new Date("Oct 12, 2020"), 5); // 'Oct 19, 2020'

Резюме

Поздравляем! Вы завершили практическое занятие по добавлению рабочих дней к дате. Вы можете выполнить больше практических занятий в LabEx, чтобы улучшить свои навыки.