Files
JavaScript/Maths/LeapYear.js
Carlos Rafael 00e40e6f06 Fix/code smells (#1338)
* ♻️ 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>
2023-08-21 23:36:43 +05:30

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))
}