isLeapYear
Test if a value corresponds to a leap year in the Gregorian calendar.
A leap year is defined as any year which is exactly divisible by 4
, except for years which are exactly divisible by 100
and not by 400
. In this definition, 100
corresponds to years marking a new century, and 400
corresponds to the length of the leap cycle.
Usage
var isLeapYear = require( '@stdlib/assert/is-leap-year' );
isLeapYear( [value] )
Tests if a value
corresponds to a leap year in the Gregorian calendar.
var bool = isLeapYear();
// returns <boolean>
bool = isLeapYear( new Date() );
// returns <boolean>
bool = isLeapYear( 2000 );
// returns true
bool = isLeapYear( 2017 );
// returns false
Notes
If not provided any
arguments
, the function returns aboolean
indicating if the current year (according to local time) is a leap year.If provided a
value
which is neither an integer value nor aDate
, the function always returnsfalse
.var bool = isLeapYear( '2016' ); // returns false bool = isLeapYear( null ); // returns false
Examples
var isLeapYear = require( '@stdlib/assert/is-leap-year' );
var bool;
var i;
for ( i = 0; i < 2021; i++ ) {
bool = isLeapYear( i );
console.log( 'The year %d %s a leap year.', i, ( bool ) ? 'is' : 'is not' );
}
CLI
Usage
Usage: is-leap-year [options] [<year>]
Options:
-h, --help Print this message.
-V, --version Print the package version.
--split sep Delimiter for stdin data. Default: '/\\r?\\n/'.
Notes
If the split separator is a regular expression, ensure that the
split
option is either properly escaped or enclosed in quotes.# Not escaped... $ echo -n $'1993\n1992' | is-leap-year --split /\r?\n/ # Escaped... $ echo -n $'1993\n1992' | is-leap-year --split /\\r?\\n/
The implementation ignores trailing delimiters.
Examples
$ is-leap-year
<boolean>
$ is-leap-year 1993
false
To use as a standard stream,
$ echo -n 1992 | is-leap-year
true
By default, when used as a standard stream, the implementation assumes newline-delimited data. To specify an alternative delimiter, set the split
option.
$ echo -n '1992\t1993' | is-leap-year --split '\t'
true
false