我通过编写一个小程序来练习一些JS,该程序会提示我们的用户输入日期以确定日期是否为闰年。
我使用if语句和Number.isInteger(userInput)来确定他们的输入是否有效。
我的问题是我可以获得大多数日期工作但是规则适用于闰年,可以除以100的年份也必须能够被400除以以便将年份视为一个飞跃年。
根据我目前的代码,每年可以被4整除的年份是有效的一年,我很难过。
<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>
答案 0 :(得分:0)
如果是整个时间我都错了...感谢阅读。
<body>
<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/400) !== true && Number.isInteger(year/100) === true) {
document.getElementById("text").innerHTML = year + " is not 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>