JavaScript第5回目宿題解答資料(加藤)

・入力された誕生日が何曜日なのかを表示するプログラムを作成せよ。

・来年へのカウントダウンをするプログラムを作成せよ。
また、正月になったら何かしらのメッセージを表示すること。

----------------------------------------------------------------
問題1

<html><head>
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>誕生日は何曜日??</title>
</head>
<body bgcolor="#ffffff">

<H2 align="left">誕生日は何曜日??</H2>

<FORM name="myform">
生年月日を西暦で入力してください<br>
<INPUT TYPE="text" size="4" name="myY" >年
<INPUT TYPE="text" size="2" name="myM" >月
<INPUT TYPE="text" size="2" name="myD" >日
<input type="button" value="何曜日かな?" onClick="mybirth()"><br>
<input type="text" size="32" name="myMes">
</FORM>

<script Language="JavaScript" type="text/javascript">

function mybirth(){
myWeek = new Array("日","月","火","水","木","金","土");
myDate = new Date(document.myform.myY.value,
document.myform.myM.value-1,
document.myform.myD.value);
myday = myDate.getDay();
document.myform.myMes.value = "あなたの誕生日は、"+myWeek[myday]+"曜日でした。";
}
</script></body></html>

----------------------------------------------------------------------------------
問題2

<html><head>
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>正月までのカウントダウン!!</title>
</head>
<body bgcolor="#ffffff">

<script Language="JavaScript" type="text/javascript">

function myFunc(newyear,AA){
this.newyear=newyear;
this.AA=AA;
if(this.newyear!=1){
myDate=new Date();                               // 現在時刻 取得
myYear=myDate.getFullYear()                      // 今年の'年'
myNextYear = new Date( myYear+1 , 0 , 1 );       // 来年の1月1日の経過秒を取得
myMsec = myNextYear.getTime()-myDate.getTime();     // 来年までの残りの時間を取得(ミリ秒)
myNextDay  = Math.floor(myMsec/(1000*60*60*24)); // カウントダウン用 '日' 取得
myMsec     -= (myNextDay*(1000*60*60*24));       // 経過秒から'日'を引く
myNextHour = Math.floor(myMsec/(1000*60*60));    // カウントダウン用 '時' 取得
myMsec     -= (myNextHour*(1000*60*60));         // 経過秒から'時'を引く
myNextMin  = Math.floor(myMsec/(1000*60));       // カウントダウン用 '分' 取得
myMsec     -= (myNextMin*(1000*60));             // 経過秒から'分'を引く
myNextSec  = Math.floor(myMsec/1000);            // カウントダウン用 '秒' 取得
myDisp = "来年まで、あと";                       // 時間バッファ クリア
if (myNextDay  != 0)myDisp+=myNextDay+"日と ";   // 0日なら表示しない
if (myNextHour != 0)myDisp+=myNextHour+"時間 ";  // 0時間なら表示しない
if (myNextMin  != 0)myDisp+=myNextMin+"分 ";     // 0分なら表示しない
if (myNextSec  != 0)myDisp+=myNextSec+"秒です。";      // 秒セット                             // 正月かどうかを示す。
if(myDisp.length!=7) document.myForm.myFormDate.value = myDisp;    // 時間をセット(表示)
else this.newyear=1;
}else{
if(this.AA==0){
document.myForm.myFormDate.value = 
"       ∧_∧\n"+
     "    ( ´Д` )  新年あけまして\n"+
     "    /     ヽ\n"+
     "    し、__X__,ノJ";
this.AA=1;
}else if(this.AA==1){
document.myForm.myFormDate.value =
      "   /´⌒⌒ヽ\n"+
     " l⌒    ⌒l  おめでとうございます\n"+
      "⊂ (   ) ⊃\n"+
      "   V ̄V ";
this.AA=0;
}
}
setTimeout("myFunc(this.newyear,this.AA)",1000);            // 1秒単位で動かす
}
</script>

<form name="myForm"> 
<textarea name="myFormDate" cols="50" rows="5">
</textarea>
<script language="JavaScript"><!--
myFunc(0,0);
// --></script>
</form>

</body></html>