mirror of
https://github.com/TheAlgorithms/JavaScript.git
synced 2025-07-18 17:49:40 +08:00

* ♻️ refactor: improving and fixing some code * Updated Documentation in README.md * ♻️ refactor: improving isLeapYear * 🐛 chore: back changes * 🐛 fix: using reduce instead forEach * 🐛 fix: using reduce instead forEach * 🐛 fix: removing duplicated code * 🐛 chore: removing .js --------- Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
19 lines
769 B
JavaScript
19 lines
769 B
JavaScript
/**
|
|
* isLeapYear :: Number -> Boolean
|
|
*
|
|
* Check if a year is a leap year or not. A leap year is a year which has 366 days.
|
|
* For the extra +1 day the February month contains 29 days instead of 28 days.
|
|
*
|
|
* The logic behind the leap year is-
|
|
* 1. If the year is divisible by 400 then it is a leap year.
|
|
* 2. If it is not divisible by 400 but divisible by 100 then it is not a leap year.
|
|
* 3. If the year is not divisible by both 400 and 100 but divisible by 4 then a leap year.
|
|
* 4. Other cases except the describing ones are not a leap year.
|
|
*
|
|
* @param {number} year
|
|
* @returns {boolean} true if this is a leap year, false otherwise.
|
|
*/
|
|
export const isLeapYear = (year) => {
|
|
return ((year % 400) === 0) || (((year % 100) !== 0) && ((year % 4) === 0))
|
|
}
|