--- title: Count weekdays between two dates type: snippet tags: [date] cover: organizer dateModified: 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. ```js 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); ``` ```js countWeekDaysBetween(new Date('Oct 05, 2020'), new Date('Oct 06, 2020')); // 1 countWeekDaysBetween(new Date('Oct 05, 2020'), new Date('Oct 14, 2020')); // 7 ```