I'm practicing some JS by writing a little program that prompts our user to enter a date to determine whether the date will be a leap year or not.
I'm using if statements and Number.isInteger(userInput) to determine whether their input is valid or not.
My problem is that I can get most dates to work but as the rule applies to leap years, years that can be divided by 100 must also be able to be divived by 400 in order for the year to be recognized as a leap year.
With my current code, every year that is divisible by 4 is a valid year and I'm quite stumped.
<p id="text"></p>
<button onclick="leapYear()">Check for leap year</button>
<script>
function leapYear() {
var year = prompt("Please enter a valid year");
year = parseInt(year);
if (year != "null") {
if (Number.isInteger(year) === true) {
if (Number.isInteger(year/400) === true && Number.isInteger(year/100) === true) {
document.getElementById("text").innerHTML = year + " is a leap year!";
} else if (Number.isInteger(year/4) === true) {
document.getElementById("text").innerHTML = year + " is a leap year!";
} else {
document.getElementById("text").innerHTML = year + " is not a leap year";
}
} else {
document.getElementById("text").innerHTML = "Please enter a valid year";
}
}
}
</script>
</body>