2017-02-02 7 views
-4

で、過去に今日または将来のであれば、私はJavaScriptに非常に新しいですし、次のように把握することはできません。カスタマイズされたメッセージの誕生日はJavascript

1)だけでなく、(彼らの完全な誕生日を提出するようユーザーに依頼年)、そして今年の誕生日が今年になっているかどうかを計算してください。

2)「あなたの誕生日が来ている」、これら3つの可能な結果(例えば/「あなたはすでに今年のあなたの誕生日を迎えた」、「今日のあなたの誕生日」に応じて表示するようにカスタマイズされたメッセージを取得します)

Iそれはシンプルでなければならないことを知っているが、私は数日前にgoogledして、それを理解することはできません。私は、これはあなたを助けることができると思い

function getAge(birth){ 
 
    var today = new Date(); 
 
    var nowYear = today.getFullYear(); 
 
    var nowMonth = today.getMonth(); 
 
    var nowDay = today.getDate(); 
 
    
 
    var birthYear = birth.getFullYear(); 
 
    var birthMonth = birth.getMonth(); 
 
    var birthDay = birth.getDate(); 
 
    
 
    var age = nowYear - birthYear; 
 
    var age_month = nowMonth - birthMonth; 
 
    var age_day = nowDay - nowDay - birthDay; 
 
    
 
    if (age_month < nowMonth || age_date < nowday) { 
 
    age = parseInt(age) -1; 
 
    } 
 
    alert("your birthday just happened"); 
 
} 
 

 

+1

あなたは私たちを表示する任意のコードをお持ちですか?それとも仕様ですか? kk – andrepaulo

+0

ok boss ahah ... –

+0

あなたのコード*テキスト*の関連部分をあなたの質問に入れてください。 –

答えて

0

VaguelyExotic:私はこれまで持って

生年月日の入力を求めるメッセージが表示されます。 は、月+日を現在の月+日と比較し、メッセージを表示します。

EDIT - これは問題を解決するために必要な手順を理解するのに役立つ簡単なバージョンです。ユーザーは常に日付を正しく入力する予定であり、例外処理はありません。だから、これを改善してみてください。あなた自身のバージョンを開始するだけです。

function getAge(){ 
 
    var today = new Date(); 
 
    var nowYear = today.getFullYear(); 
 
    var nowMonth = today.getMonth(); 
 
    var nowDay = today.getDate(); 
 
    
 
    var birth = prompt("When were you born?", "YYYY-MM-DD"); 
 
    var birth = new Date(parseInt(birth.substring(0,4)),parseInt(birth.substring(5,7))-1,parseInt(birth.substring(8,10))); 
 
    
 
    var birthYear = birth.getFullYear(); 
 
    var birthMonth = birth.getMonth(); 
 
    var birthDay = birth.getDate(); 
 
    
 
    var compBirth = birthMonth.toString() + birthDay.toString(); 
 
    var compToday = nowMonth.toString() + nowDay.toString(); 
 
    
 
    
 
    if(compBirth == compToday) { 
 
    alert('Today is your birthday!'); 
 
    } else if (compBirth > compToday){ 
 
    alert('Your birthday is comming!'); 
 
    } else { 
 
    alert('Happy b-lated day!'); 
 
    } 
 
    
 
} 
 
getAge();

+0

ありがとうございました!コードはすごくうまく機能していて、きれいだし、そのほとんどを理解できるのが本当に好きです。どのように動作するのかを理解するために勉強しますが、それはもっと意味があります。非常に高く評価。 – vaguelyexotic

+0

これをあなたの答えとしてください;)、私は感謝します。私は助けることができてうれしい – andrepaulo

関連する問題