0

私はjavascriptプログラムを実行して、使用する年齢を計算しようとしています.以下のコードを実行しました.

function submitForm() {
    var d = new Date();
    var year = d.getFullYear();
    var month = d.getMonth();
    var days = d.getDay();
    var minutes = d.getMinutes();
    var hours = d.getHours();
    var byear = document.dataform.year.selectedIndex;
    var bmonth = document.dataform.month.selectedIndex;
    var bday = document.dataform.day.selectedIndex;
    var bhours = bday * 24;
    var bmin = 60 * b hours;
    var dyears = year - byear;
    var dmonth = month - bmonth;
    var ddays = (days - bday);
    var dhours = hours - bhours;
    var dminutes = minutes - bmin;
    var daysTillBDay = 365 - bday;
    if (isLeapYear() == true) {
        dyears = year - byear;
        dmonth = month - bmonth;
        ddays = (days - bday) + 1;
        dhours = hours - bhours;
        dminutes = minutes - bmin;
        daysTillBDay = 365 - bday;
    }
    var el = document.getElementsByName('uyears');
    el[0].value = dyears + " years old.";
    el = document.getElementsByName('umonths');
    el[0].value = dmonth + " months old.";
    document.getElementsByName('udays')[0].value = ddays;
    document.getElementsByName('lmonths')[0].value = dmonth;
    document.getElementsByName('ldays')[0].value = ddays;
    document.getElementsByName('lhrs')[0].value = dhours;
    document.getElementsByName('lmin')[0].value = dminutes;
    document.getElementsByName('bdays')[0].value = daysTillBDay + " days left till your birthday.";
}

プログラムを実行する前に仕事をすると思います。プログラムを実行した後、プログラムがほとんどすべてを間違っていることがわかりました.2013年(最も新しい年)のような年があり、 11 と入力すると、-1 などの負の数になります。ユーザーの年齢を検索しようとしています。これは、今日 (今日のゲート)-(誕生日) の日付であると信じていますが、現在は機能していません。

4

1 に答える 1

0

問題は非常に単純です (そして、私が自分で犯した 1 つの間違いです) -new Date().getDay()月の日ではなく、曜日 (月曜日の場合は 0 から日曜日の場合は 6 まで) を返します。

探している関数はnew Date().getDate()で、1 月 1 日には 1、クリスマスには 25 などを返します。

于 2013-10-25T23:20:23.560 に答える