Files
30-seconds-of-code/snippets/addWeekDays.md
Isabelle Viktoria Maciohsek 27c168ce55 Bake date into snippets
2021-06-13 13:55:00 +03:00

1.1 KiB

title, tags, firstSeen, lastUpdated
title tags firstSeen lastUpdated
addWeekDays date,intermediate 2020-10-11T16:51:39+03:00 2021-01-08T00:23:44+02:00

Calculates the date after adding the given number of business days.

  • Use Array.from() to construct an array with length equal to the count of business days to be added.
  • Use Array.prototype.reduce() to iterate over the array, starting from startDate and incrementing, using Date.prototype.getDate() and Date.prototype.setDate().
  • If the current date is on a weekend, update it again by adding either one day or two days to make it a weekday.
  • NOTE: Does not take official holidays into account.
const addWeekDays = (startDate, count) =>
  Array.from({ length: count }).reduce(date => {
    date = new Date(date.setDate(date.getDate() + 1));
    if (date.getDay() % 6 === 0)
      date = new Date(date.setDate(date.getDate() + (date.getDay() / 6 + 1)));
    return date;
  }, startDate);
addWeekDays(new Date('Oct 09, 2020'), 5); // 'Oct 16, 2020'
addWeekDays(new Date('Oct 12, 2020'), 5); // 'Oct 19, 2020'