Введение
В этом лабораторном задании мы исследуем JavaScript-программу, которая подсчитывает количество рабочих дней между двумя заданными датами. Программа использует массив и метод reduce для перебора заданного диапазона дат, проверяет, является ли каждая дата рабочим днем, и увеличивает счетчик соответственно. Однако, следует отметить, что эта программа не учитывает официальные праздники.
Подсчет рабочих дней между двумя датами
Для подсчета рабочих дней между двумя датами следуйте шагам:
- Откройте Терминал/SSH и введите
node, чтобы начать практиковаться в написании кода. - Используйте
Array.from(), чтобы создать массив с длиной, равной количеству дней междуstartDateиendDate. - Используйте
Array.prototype.reduce(), чтобы перебрать массив, проверяя, является ли каждая дата рабочим днем, и увеличиватьcount. - Обновите
startDateследующим днем на каждой итерации с использованиемDate.prototype.getDate()иDate.prototype.setDate(), чтобы продвинуть ее на один день. - Обратите внимание, что эта функция не учитывает официальные праздники.
Вот код для реализации этого:
const countWeekDaysBetween = (startDate, endDate) =>
Array.from({ length: (endDate - startDate) / (1000 * 3600 * 24) }).reduce(
(count) => {
if (startDate.getDay() % 6 !== 0) count++;
startDate = new Date(startDate.setDate(startDate.getDate() + 1));
return count;
},
0
);
Вы можете использовать следующий код для тестирования функции:
countWeekDaysBetween(new Date("Oct 05, 2020"), new Date("Oct 06, 2020")); // 1
countWeekDaysBetween(new Date("Oct 05, 2020"), new Date("Oct 14, 2020")); // 7
Резюме
Поздравляем! Вы завершили лабораторную работу "Подсчет рабочих дней между двумя датами". Вы можете практиковаться в других лабораторных работах в LabEx, чтобы улучшить свои навыки.