JavaScript初心者です。質問が
あります。
誕生日勘定関数birth()、
うるう年対応関数uruu()
はそれぞれ単独で作動することを確認しています。
がbirth()にuruu()を組み込むと作動しなくなります。
どうしたら解決するのでしょうか?
<script language="JavaScript">
<!--
function birth(){
set_m = eval(document.myForm.formm.value);
set_d = eval(document.myForm.formd.value);
if(set_m<1 || set_m>12){
alert("正しい月日を入力してください!");
return false;
}
if(set_m ==2 && set_d>29){
alert("正しい月日を入力してください!");
return false;
}
if(set_m ==1 | set_m ==3 | set_m ==5 | set_m ==7 | set_m ==8 | set_m ==10 |set_m ==12){
if(set_d<1 || set_d>31){
alert("正しい月日を入力してください!");
return false;
}
}else if(set_d <1 | set_d>30){
alert("正しい月日を入力してください!");
return false;
}
if(set_m ==2 && set_d ==29)
uruu();
else if{
now = new Date();
b = now.getYear();
spday= new Date (b,set_m-1,set_d);
spday2 = new Date(b-1,set_m-1,set_d);
spday3 = new Date(b+1,set_m-1,set_d);
a = (spday.getTime() - now.getTime())/(24*60*60*1000);
a = Math.ceil(a);
c = (spday2.getTime() - now.getTime())/(24*60*60*1000);
c = Math.ceil(c);
d = (spday3.getTime() - now.getTime())/(24*60*60*1000);
d = Math.ceil(d)
aa = Math.abs(a);
cc = Math.abs(c);
dd = Math.abs(d);
if(aa==0) document.write("誕生日おめでとう!!");
else if( a<0 && dd>aa && aa<cc) document.write("誕生日から",aa,"日過ぎました・・・");
else if(a<0 && aa>=dd && dd<cc) document.write("あと",dd,"日で誕生日です。");
else if(aa<=cc && aa<dd) document.write("あと",aa,"日で誕生日です。");else if(aa>cc && cc<dd ) document.write("誕生日から",cc,"日過ぎました・・・");
}
}
function uruu(){
now = new Date();
b = now.getYear();
spday = new Date(b,2-1,29);
a = (spday.getTime()- now.getTime())/(24*60*60*1000);
a = Math.ceil(a);
aa = Math.abs(a);
if(a<0){
if(b%4==0)
document.write("誕生日から",aa,"日経過しました。");
else if(b%4==1)
document.write("誕生日から",365+aa,"日経過しました。");
else if(b%4==2)
document.write("あと",365+365-aa,"日で誕生日です。");
else if(b%4==3)
document.write("あと",365-aa,"日で誕生日です。");
}else if(a>0){
if(b%4==0)
document.write("あと",aa,"日で誕生日です。");
else if(b%4==1)
document.write("誕生日から",365-aa,"日経過しました。");
else if(b%4==2)
document.write("誕生日から",365+365-aa,"日経過しました。");
else if(b%4==3)
document.write("あと",365+aa,"日で誕生日です。");
}else if(a==0)
document.write("誕生日おめでとう!!");
}
-->
</script>
<form name="myForm">
<input type="text" name="formm" size=2>月
<input type="text" name="formd" size=2>日
<input type="button" value="誕生日勘定する" onClick="birth()">
</form>
お礼
シングルコーテーションとかダブルコーテーションに間違いがあったことに自分の知識の基本の無さを痛感させられました。本当にためになりました。ありがとうございました。