2017-10-14 11 views
0

日付、月、日を入力するための3つのプロンプトボックスを作成しました。そして私は誕生年、次の年を表示し、次の誕生日の日、時間、分、秒を表示しようとしています。そのために私は日付オブジェクトを作成しました。すべてを計算するが、私は答えを得ていない。誰も私を助けることができる?Javascript:出生年を計算する

コード:

<!DOCTYPE html> 
<html> 
<head> 
    <style> 

    p{ 
     text-align: center; 
     font-family: monospace; 
     font-size: 20px; 
    } 
    </style> 
    <title>lab14</title> 


</head> 
<body background= "lab14_images/birth.jpg"> 
    <h1 style="text-align: center; font-family: monospace;"> My age </h1> 
    <p id="dateField"> </p> 
    <p id="birthField"> </p> 
    <p id="nextBirth"> </p> 

    <script>  

     var monthNames = ["January", "February", "March", "April", "May", "June", 
      "July", "August", "September", "October", "November", "December" 
     ]; 

     var days = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]; 

     var today = new Date(); 
     var startDate = new Date(); 

     var myMonth = prompt("What month were you born in?"); 
     var myDay = prompt("What day were you born on?"); 
     var myYear = prompt("What year were you born in?"); 

     var dateLoc = document.getElementById("dateField").innerHTML = "Today is " + today; 

     var birthField = document.getElementById("birthField") 
     .innerHTML = "I was born on " + monthNames[myMonth - 1] + ' ' + myDay + ',' + myYear + '.' 
     + '(' + myMonth + '/' + myDay + '/' + myYear + ')'; 

     var endDate = new Date(today.getFullYear() + 1, myMonth, myDay); 
     // !!! WHERE is startDate defined??? 
     var s = (endDate.getTime() - startDate.getTime())/1000 

     var nextBirth = document.getElementById("nextBirth").innerHTML = "I am" + endDate + "Years old, and will turn"+ endDate + 1 +"in:"+ days +"days," + hours +"hours" + minutes +"minutes" + seconds +"seconds" ; 

    </script> 
</body> 
</html> 
+0

誰も助けてくださいことはできますか? – pari

答えて

0

Iは1つのエラーを修正:前endDateに値の割り当てを移動、それが実際に使用されます。

私の!!!コメントをご覧ください。あなたは定義も初期化もしていない変数を使用しています。

スニペットで再生し、画面の右下にコンソールエラーに注意してください。

 var monthNames = ["January", "February", "March", "April", "May", "June", 
 
     "July", "August", "September", "October", "November", "December" 
 
     ]; 
 

 
     var days = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]; 
 

 
     var today = new Date(); 
 
     //var birth = new Date(); 
 

 
     var myMonth = prompt("What month were you born in?"); 
 
     var myDay = prompt("What day were you born on?"); 
 
     var myYear = prompt("What year were you born in?"); 
 

 
     var dateLoc = document.getElementById("dateField").innerHTML = "Today is " + today; 
 

 
     var birthField = document.getElementById("birthField") 
 
     .innerHTML = "I was born on " + monthNames[myMonth - 1] + ' ' + myDay + ',' + myYear + '.' 
 
     + '(' + myMonth + '/' + myDay + '/' + myYear + ')'; 
 

 
     var endDate = new Date(today.getFullYear() + 1, myMonth, myDay); 
 
     // !!! WHERE is startDate defined??? 
 
     var secondsBetween = (endDate.getTime() - startDate.getTime())/1000 
 
     
 

 
     var seconds = Math.floor((endDate/1000) % 60); 
 
     var minutes = Math.floor((endDate/1000/60) % 60); 
 
     var hours = Math.floor((endDate/(1000*60*60)) % 24); 
 
     var days = Math.floor(endDate/(1000*60*60*24)); 
 

 
     var nextBirth = document.getElementById("nextBirth").innerHTML = "I am" + endDate + "Years old, and will turn"+ endDate + 1 +"in:"+ days +"days," + hours +"hours" + minutes +"minutes" + seconds +"seconds" ;
p{ 
 
     text-align: center; 
 
     font-family: monospace; 
 
     font-size: 20px; 
 
    }
<h1 style="text-align: center; font-family: monospace;"> My age </h1> 
 
    <p id="dateField"> </p> 
 
    <p id="birthField"> </p> 
 
    <p id="nextBirth"> </p>

+0

実際にあなたの**コードを理解していますか? 'secondsBetween'は何のために変わるのですか? –

+0

これは私が誕生年を計算するために与えた変数の名前です。私はそれの名前を変更しました。 – pari

+0

このコードを動作させる方法を教えてください。 – pari