0

数値範囲内でうるう年と非うるう年を見つけようとしています。うるう年とうるう年以外は別々の配列に入れる必要があり、後でテーブルに出力します。私は JavaScript にかなり慣れていないので、ループが間違っている可能性があると思いますが、よくわかりません。

私の問題は、うるう年以外の配列が必要なすべての数値を取得していないことです。1900 年から 2000 年に入ると、うるう年は問題ないように見えますが、うるう年以外の配列は 1930 年までしか表示されませんでした。しばらく修正しようとしましたが、うまくいきませんでした。

編集:forループは、配列をテストするためだけに存在します。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">

<html>

    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />

        <title>LeapYears</title>

        <script type="text/javascript">
        /* <![CDATA[ */


            function calcLeapYear() {

                var beginYear = document.leapYears.firstYear.value;
                var endYear = document.leapYears.secondYear.value;
                var leapYrs = new Array();
                var nonLeapYrs = new Array();

                var ctr = 0
                var ctr2 = 0
                while (beginYear < endYear){

                    if (((beginYear % 4 == 0) && (beginYear % 100 != 0)) || (beginYear % 400 == 0)) { /* Determines if year is a leap year or not */
                        leapYrs[ctr] = beginYear;
                        ++ctr;
                    }
                    else {
                        nonLeapYrs[ctr2] = beginYear;
                        ++ctr2;
                    }

                    ++beginYear;
                }

                if (leapYrs == 0){
                        window.alert("There were no leap years within the range.");
                    }

                for (i=0;i<leapYrs.length;i++){    //Testing Calculation
                    document.write(leapYrs[i] + "<br/>");
                }

                document.write("<br/>")

                for (i=0;i<leapYrs.length;i++){
                    document.write(nonLeapYrs[i] + "<br/>");
                }

            }

        /* ]]> */
        </script>


    </head>


    <body>
        <form name="leapYears">

            Beginning Year: <input type="text" name="firstYear" /> End Year: <input type="text" name="secondYear" /> 
            <input type="button" value="Find Leap Years" onclick="calcLeapYear()" />

        </form>

    </body>


</html>
4

1 に答える 1