Count weekdays between two dates
JavaScript, Date · Oct 20, 2020

Counts the weekdays between two dates.
- Use
Array.from()
to construct an array withlength
equal to the number of days betweenstartDate
andendDate
. - Use
Array.prototype.reduce()
to iterate over the array, checking if each date is a weekday and incrementingcount
. - Update
startDate
with the next day each loop usingDate.prototype.getDate()
andDate.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