Array.from()
to construct an array with length
equal to the number of days between startDate
and endDate
.Array.prototype.reduce()
to iterate over the array, checking if each date is a weekday and incrementing count
.startDate
with the next day each loop using Date.prototype.getDate()
and Date.prototype.setDate()
to advance it by one day.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
Subscribe to get resources directly to your inbox. You won't receive any spam! ✌️