-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathmod.ts
33 lines (30 loc) · 973 Bytes
/
mod.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import { parseDateLike } from "https://deno.land/x/[email protected]/mod.ts";
/**
* Check if a year is a [leap year](https://en.wikipedia.org/wiki/Leap_year).
*
* @param year - Default: `new Date()`.
*
* @example
* ```javascript
* import { isLeapYear } from "https://deno.land/x/leap_year/mod.ts";
*
* isLeapYear(2014); //=> false
* isLeapYear(2016); //=> true
* isLeapYear("6 October 2006 00:07:00 GMT") //=> false
* isLeapYear("200"); //=> false
* isLeapYear(new Date(2016, 1, 1)); //=> true
* ```
*/
export function isLeapYear(year?: Date | string | number): boolean;
export function isLeapYear(
year?: Date | string | number,
returnValue?: boolean,
): { year: number; result: boolean };
export function isLeapYear(
year: Date | string | number = new Date(),
returnValue = false,
) {
year = parseDateLike(year);
const result = (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
return returnValue ? { result, year } : result;
}