isLeapYear
Version where year is given as a Date object.
by denvdmj
JavaScript
const isLeapYear = date =>
(year => !(year % 4) && !!(year % 100) || !(year % 400)) (date.getFullYear());
// TEST
// http://calendarin.net/old/leap-years.php
const leapYearsList = [
1972,
1976,
1980,
1984,
1988,
1992,
1996,
2000,
2004,
2008,
2012,
2016,
2020,
2024,
2028,
2032,
2036,
2040,
2044,
2048,
2052,
2056,
2060,
2064,
2068,
2072,
2076,
2080,
2084,
2088,
2092,
2096,
2104,
2108,
2112,
2116,
2120,
2124,
2128,
2132,
2136,
2140,
2144,
2148,
2152,
2156,
2160,
2164,
2168,
2172,
2176,
2180,
2184,
2188,
2192,
2196,
2204,
2208,
2212,
2216,
2220,
2224,
2228,
2232,
2236,
2240,
2244,
2248,
2252,
2256,
2260,
2264,
2268,
2272,
2276,
2280,
2284,
2288,
2292,
2296,
2304,
2308,
2312,
2316,
2320,
2324,
2328,
2332,
2336,
2340,
2344,
2348,
2352,
2356,
2360,
2364,
2368,
2372,
2376,
2380,
2384,
2388,
2392,
2396,
2400,
2404,
2408,
2412,
2416,
2420,
2424,
2428,
2432,
2436,
2440,
2444,
2448,
2452,
2456,
2460,
2464,
2468,
2472,
2476,
2480,
2484,
2488,
2492,
2496,
2504,
2508,
2512,
2516,
2520,
2524,
2528,
2532,
2536,
2540,
2544,
2548,
2552,
2556,
2560,
2564,
2568,
2572,
2576,
2580,
2584,
2588,
2592,
2596,
2604,
2608,
2612,
2616,
2620,
2624,
2628,
2632,
2636,
2640,
2644,
2648,
2652,
2656,
2660,
2664,
2668,
2672,
2676,
2680,
2684,
2688,
2692,
2696,
2704,
2708,
2712,
2716,
2720,
2724,
2728,
2732,
2736,
2740,
2744,
2748,
2752,
2756,
2760,
2764,
2768,
2772,
2776,
2780,
2784,
2788,
2792,
2796,
2800,
2804,
2808,
2812,
2816,
2820,
2824,
2828,
2832,
2836,
2840,
2844,
2848,
2852,
2856,
2860,
2864,
2868,
2872,
2876,
2880,
2884,
2888,
2892,
2896,
...