diff options
Diffstat (limited to 'date-fns/src/isExists/index.ts')
-rw-r--r-- | date-fns/src/isExists/index.ts | 38 |
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 + ) +} |