diff options
author | Sebastian <sebasjm@gmail.com> | 2021-08-23 16:46:06 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2021-08-23 16:48:30 -0300 |
commit | 38acabfa6089ab8ac469c12b5f55022fb96935e5 (patch) | |
tree | 453dbf70000cc5e338b06201af1eaca8343f8f73 /date-fns/src/eachWeekendOfMonth/index.ts | |
parent | f26125e039143b92dc0d84e7775f508ab0cdcaa8 (diff) | |
download | node-vendor-38acabfa6089ab8ac469c12b5f55022fb96935e5.tar.gz node-vendor-38acabfa6089ab8ac469c12b5f55022fb96935e5.tar.bz2 node-vendor-38acabfa6089ab8ac469c12b5f55022fb96935e5.zip |
Diffstat (limited to 'date-fns/src/eachWeekendOfMonth/index.ts')
-rw-r--r-- | date-fns/src/eachWeekendOfMonth/index.ts | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/date-fns/src/eachWeekendOfMonth/index.ts b/date-fns/src/eachWeekendOfMonth/index.ts new file mode 100644 index 0000000..1cfdfb7 --- /dev/null +++ b/date-fns/src/eachWeekendOfMonth/index.ts @@ -0,0 +1,42 @@ +import eachWeekendOfInterval from '../eachWeekendOfInterval/index' +import startOfMonth from '../startOfMonth/index' +import endOfMonth from '../endOfMonth/index' +import requiredArgs from '../_lib/requiredArgs/index' + +/** + * @name eachWeekendOfMonth + * @category Month Helpers + * @summary List all the Saturdays and Sundays in the given month. + * + * @description + * Get all the Saturdays and Sundays in the given month. + * + * @param {Date|Number} date - the given month + * @returns {Date[]} an array containing all the Saturdays and Sundays + * @throws {TypeError} 1 argument required + * @throws {RangeError} The passed date is invalid + * + * @example + * // Lists all Saturdays and Sundays in the given month + * const result = eachWeekendOfMonth(new Date(2022, 1, 1)) + * //=> [ + * // Sat Feb 05 2022 00:00:00, + * // Sun Feb 06 2022 00:00:00, + * // Sat Feb 12 2022 00:00:00, + * // Sun Feb 13 2022 00:00:00, + * // Sat Feb 19 2022 00:00:00, + * // Sun Feb 20 2022 00:00:00, + * // Sat Feb 26 2022 00:00:00, + * // Sun Feb 27 2022 00:00:00 + * // ] + */ +export default function eachWeekendOfMonth(dirtyDate: Date): Date[] { + requiredArgs(1, arguments) + + const startDate = startOfMonth(dirtyDate) + if (isNaN(startDate.getTime())) + throw new RangeError('The passed date is invalid') + + const endDate = endOfMonth(dirtyDate) + return eachWeekendOfInterval({ start: startDate, end: endDate }) +} |