diff options
| author | Pinapelz <yukais@pinapelz.com> | 2025-06-28 17:26:46 -0700 |
|---|---|---|
| committer | Pinapelz <yukais@pinapelz.com> | 2025-06-28 17:43:56 -0700 |
| commit | e4fa1e69e7ebfb627c7198fd1a9881e9327ec4d4 (patch) | |
| tree | 06284a538a6008eca75051399e47db4e5d50301c /node_modules/date-fns/esm/eachWeekendOfInterval/index.js | |
initial commit: scaffolding
Diffstat (limited to 'node_modules/date-fns/esm/eachWeekendOfInterval/index.js')
| -rw-r--r-- | node_modules/date-fns/esm/eachWeekendOfInterval/index.js | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/node_modules/date-fns/esm/eachWeekendOfInterval/index.js b/node_modules/date-fns/esm/eachWeekendOfInterval/index.js new file mode 100644 index 0000000..94db59b --- /dev/null +++ b/node_modules/date-fns/esm/eachWeekendOfInterval/index.js @@ -0,0 +1,45 @@ +import eachDayOfInterval from "../eachDayOfInterval/index.js"; +import isSunday from "../isSunday/index.js"; +import isWeekend from "../isWeekend/index.js"; +import requiredArgs from "../_lib/requiredArgs/index.js"; +/** + * @name eachWeekendOfInterval + * @category Interval Helpers + * @summary List all the Saturdays and Sundays in the given date interval. + * + * @description + * Get all the Saturdays and Sundays in the given date interval. + * + * @param {Interval} interval - the given interval. See [Interval]{@link https://date-fns.org/docs/Interval} + * @returns {Date[]} an array containing all the Saturdays and Sundays + * @throws {TypeError} 1 argument required + * @throws {RangeError} The start of an interval cannot be after its end + * @throws {RangeError} Date in interval cannot be `Invalid Date` + * + * @example + * // Lists all Saturdays and Sundays in the given date interval + * const result = eachWeekendOfInterval({ + * start: new Date(2018, 8, 17), + * end: new Date(2018, 8, 30) + * }) + * //=> [ + * // Sat Sep 22 2018 00:00:00, + * // Sun Sep 23 2018 00:00:00, + * // Sat Sep 29 2018 00:00:00, + * // Sun Sep 30 2018 00:00:00 + * // ] + */ +export default function eachWeekendOfInterval(interval) { + requiredArgs(1, arguments); + var dateInterval = eachDayOfInterval(interval); + var weekends = []; + var index = 0; + while (index < dateInterval.length) { + var date = dateInterval[index++]; + if (isWeekend(date)) { + weekends.push(date); + if (isSunday(date)) index = index + 5; + } + } + return weekends; +}
\ No newline at end of file |
