2016-07-16 12 views
0

私は、ユーザーの生年月日を使用して現在の年齢を計算するプログラムを作成していますが、Number()を使用した後でも、変数のtypeof()は変更されておらず、string.iは残っていません間違いがどこにあるの?数値関数return string

<!DOCTYPE html> 
<html> 
<body> 

<script> 

function myfunction() 
{ 
var name=prompt("enter your name"); 
document.getElementById('name').innerHTML=name ; 
    var year=prompt("enter your birth year"); 
    year=Number(year); 

    document.getElementById('year').innerHTML=year; 

    var month=prompt("enter your birth month(month number)"); 
    if(month>12) 
    { 
    alert("not possible,try again"); 
month=prompt("enter your birth month(month number)"); 
month=Number(month); 
    document.getElementById('month').innerHTML=month; 
    } 
    else 
    { 
    document.getElementById('month').innerHTML=month; 
    var day=prompt("enter your birth day (DAY NO.)"); 
    } 
    if(month==2&&day>28) 
    { 
    alert("you're drunk,come later"); 
    day=prompt("enter your birth day no.(ONLY THE DAY)"); 
    day=Number(day) 
    document.getElementById('day').innerHTML=day; 
} 
    if(day>31) 
{ 
alert("wrong day"); 
day=prompt("enter your birth day no.(ONLY THE DAY)"); 
day=Number(day); 
document.getElementById('day').innerHTML=day; 
} 
else 
    document.getElementById('day').innerHTML=day; 

myage(year,month,day); 
} 
function myage(year,month,day) 
{ 
    var date= new Date; 
    var y,m,d,Y,M,D; 
    y=date.getYear; 
    m=date.getMonth; 
    d=date.getDay; 
    Y=y-year; 
    M=m-month; 
    D=d-day; 
    document.getElementById('age').innerHTML=Y+"<br>"+M+"<br>"+D; 

} 



</script> 

<p id="name"><h1>NAME:</h1></p> 
    <p id="year"><h1>YEAR</h1></p> 
    <p id="month"><h1>MONTH:</h1></p> 
    <p id="day"><h1>DAY:</h1></p> 
    <p id="age"><h2>your age is=</h2></p> 
    <button onclick="myfunction()">click to login</button> 

    </body> 
</html> 
+0

あなたは 'Number'の戻り値を無視しています。 'year = Number(year)' –

+0

[Google検索](https://www.google.com/search?q=site%3Astackoverflow.com+javascript+Number+function+doesn%27t+work&gws_rd=ssl)私は、重複した質問/回答を将来の参照のために見つけるのに使用しました。 –

+0

私はあなたが私に尋ねたことをしましたが、まだNaNを返しています。 –

答えて

2

あなたは

month = Number(month); 

基本的にNumber関数はタイプnumberの値を返します、元の変数に値を代入されていません。あなたはそれを利用するために変数で受け取らなければなりません。

+0

私はそれをしても、まだ動作していません –

関連する問題