summaryrefslogtreecommitdiff
path: root/date-fns/src/eachWeekendOfMonth/index.ts
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2021-08-23 16:46:06 -0300
committerSebastian <sebasjm@gmail.com>2021-08-23 16:48:30 -0300
commit38acabfa6089ab8ac469c12b5f55022fb96935e5 (patch)
tree453dbf70000cc5e338b06201af1eaca8343f8f73 /date-fns/src/eachWeekendOfMonth/index.ts
parentf26125e039143b92dc0d84e7775f508ab0cdcaa8 (diff)
downloadnode-vendor-38acabfa6089ab8ac469c12b5f55022fb96935e5.tar.gz
node-vendor-38acabfa6089ab8ac469c12b5f55022fb96935e5.tar.bz2
node-vendor-38acabfa6089ab8ac469c12b5f55022fb96935e5.zip
added web vendorsHEADmaster
Diffstat (limited to 'date-fns/src/eachWeekendOfMonth/index.ts')
-rw-r--r--date-fns/src/eachWeekendOfMonth/index.ts42
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 })
+}