Press n or j to go to the next uncovered block, b, p or k for the previous block.
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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 11x 7776x 7776x 7776x 7774x 2627x 7774x 5137x 5147x 10x 10x 7776x 2x 2x 2x 7766x 7776x 128x 128x 128x 7638x 7638x 7776x 11x 11x 11x 11x 11x | /** * @license Apache-2.0 * * Copyright (c) 2018 The Stdlib Authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ 'use strict'; // MODULES // var isDateObject = require( '@stdlib/assert/is-date-object' ); var isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive; var currentYear = require( '@stdlib/time/current-year' ); // MAIN // /** * Tests whether a value corresponds to a leap year in the Gregorian calendar. * * ## Notes * * - According to the Gregorian calendar, every year that is exactly divisible by `4` is a leap year, except those years which are also divisible by `100` and not by `400` (e.g., `1900`). * * @param {*} [value] - input value * @returns {boolean} boolean whether a value corresponds to a leap year * * @example * var bool = isLeapYear(); * // returns <boolean> * * @example * var bool = isLeapYear( new Date() ); * // returns <boolean> * * @example * var bool = isLeapYear( 1996 ); * // returns true * * @example * var bool = isLeapYear( 2001 ); * // returns false */ function isLeapYear( value ) { var yr; if ( arguments.length ) { if ( isDateObject( value ) ) { yr = value.getFullYear(); } else if ( isInteger( value ) ) { yr = value; } else { return false; } } else { // Note: cannot cache, as possible for application to cross into a new year: yr = currentYear(); } // Special case if year is a new century... if ( (yr % 100) === 0 ) { // Centuries are only leap years at the end of "leap cycles" which happen every `400` years: return ( (yr % 400) === 0 ); } // All other years which are exactly divisible by `4` are leap years: return ( (yr % 4) === 0 ); } // EXPORTS // module.exports = isLeapYear; |