summaryrefslogtreecommitdiff
path: root/date-fns/src/isExists/index.ts
diff options
context:
space:
mode:
Diffstat (limited to 'date-fns/src/isExists/index.ts')
-rw-r--r--date-fns/src/isExists/index.ts38
1 files changed, 38 insertions, 0 deletions
diff --git a/date-fns/src/isExists/index.ts b/date-fns/src/isExists/index.ts
new file mode 100644
index 0000000..a15e60a
--- /dev/null
+++ b/date-fns/src/isExists/index.ts
@@ -0,0 +1,38 @@
+/**
+ * @name isExists
+ * @category Common Helpers
+ * @summary Is the given date exists?
+ *
+ * @description
+ * Checks if the given arguments convert to an existing date.
+ *
+ * @param {Number} year of the date to check
+ * @param {Number} month of the date to check
+ * @param {Number} day of the date to check
+ * @returns {Boolean} the date exists
+ * @throws {TypeError} 3 arguments required
+ *
+ * @example
+ * // For the valid date:
+ * var result = isExists(2018, 0, 31)
+ * //=> true
+ *
+ * @example
+ * // For the invalid date:
+ * var result = isExists(2018, 1, 31)
+ * //=> false
+ */
+export default function isExists(year: number, month: number, day: number): boolean {
+ if (arguments.length < 3) {
+ throw new TypeError(
+ '3 argument required, but only ' + arguments.length + ' present'
+ )
+ }
+
+ const date = new Date(year, month, day)
+ return (
+ date.getFullYear() === year &&
+ date.getMonth() === month &&
+ date.getDate() === day
+ )
+}