|
来年をカウントダウンする |
| 来年の元旦まで、あと何日かをリアルタイムに秒単位に表示します。 |
| 難易度:★★☆☆☆☆☆☆☆☆ |
| 【実行例】 |
【リスト】
<script language="JavaScript"><!--
function myFunc(){
myD = new Date(); // 現在時刻 取得
myYear=(myD.getYear()<2000)?1900+myD.getYear() : myD.getYear(); // 今年の'年'
myNextYear = new Date( myYear+1 , 0 , 1 ); // 来年の1月1日の経過秒を取得
myMsec = myNextYear.getTime()-myD.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分なら表示しない
myDisp+=myNextSec+"秒"; // 秒セット
document.myForm.myFormDate.value = myDisp; // 時間をセット(表示)
setTimeout("myFunc()",1000); // 1秒単位で動かす
}
// --></script>
<form name="myForm">
<p>来年まで、あと、
<input type="text" size="35" name="myFormDate">です
<script language="JavaScript"><!--
myFunc();
// --></script>
</p>
</form>
|
| 【説明】 来年をリアルタイムでカウントダウン表示してみます。 今回も、変わったことはしていません。 Step.5 の 「フォームを使って日付と時刻をリアルタイムに表示してみましょう」 か、 Step.49 の 「予定日まで あと何日かカウントダウンしてみましょう」 を いじれば出来上がりです。 とくに、説明もいらないでしょう。なんか、このプログラムは適当です。もっとスマートな計算方法(算数)があれば、迷わず自分のやり方で時刻を割り出してみましょう。 ちなみに、このプログラムでは、来年の0時0分00秒になったら、再来年のカウントダウンをはじめますね。(^^; |