私は、若干のプログラムを書くことによってJSを練習しています。これは、ユーザーに日付を入力して、うるう年かどうかを判断するプロンプトです。Javascript初心者:ifステートメント
私は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>
可能な重複[チェック年には、JavaScriptでのうるう年の場合](http://stackoverflow.com/questions/16353211/check-if-year-is-leap-year-in-javascript) – Konstantinos
Iこれは非常に非効率的なこの問題を作る方法かもしれないが、私は300がうるう年として渡すことができたときに私のif文がなぜ機能していないのか知りたいと思います。 私はさまざまなアイデアへの提案も受け付けています。 – spamwoo
'else if(Number.isInteger(year/4)=== true)' ...あなたはそれについて何か悩んでいますか? –