Files
30-seconds-of-code/snippets/count-week-days-between.md
Angelos Chalaris 61200d90c4 Kebab file names
2023-04-27 21:58:35 +03:00

1.1 KiB

title, tags, cover, firstSeen, lastUpdated
title tags cover firstSeen lastUpdated
Count weekdays between two dates date organizer 2020-10-11T11:44:44+03:00 2020-10-20T11:21:07+03:00

Counts the weekdays between two dates.

  • Use Array.from() to construct an array with length equal to the number of days between startDate and endDate.
  • Use Array.prototype.reduce() to iterate over the array, checking if each date is a weekday and incrementing count.
  • Update startDate with the next day each loop using Date.prototype.getDate() and Date.prototype.setDate() to advance it by one day.
  • NOTE: Does not take official holidays into account.
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