2017-04-04 59 views
0

我正在通過編寫一個小程序來練習一些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> 
+1

的可能的複製[檢查今年是JavaScript的閏年(http://stackoverflow.com/questions/16353211/check-if-year-is-leap-year-in-javascript) – Konstantinos

+0

我知道這可能是一個非常低效的方式來解決這個問題,但我想知道爲什麼我的if語句不工作時,300可以通過閏年。 我也接受不同想法的建議! – spamwoo

+0

'else if(Number.isInteger(year/4)=== true)'......有什麼關於這個的嗎? –

回答

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> 
+0

即使壽,你可以在1行代碼中做到這一點.. – Konstantinos