明日の曜日表示明日の曜日表示 以下は、今日、 | おもちゃショッピングスタッフブログ

おもちゃショッピングスタッフブログ

おもちゃを扱っているサイトを運営してます

明日の曜日表示明日の曜日表示 以下は、今日、昨日、明日の日付を取得するスクリプトです。

 

今日と昨日は正しく表示されますが、

 

明日の曜日が「undefined」となってしまいます。

 

どうしても分かりません。教えて下さい。

 

 

 

【実行結果】

 

今日:2010年1月2日土曜日

 

昨日:2010年1月1日金曜日

 

明日:2010年1月3日undefined曜日

 

 

 

<script type="text/javascript">

 

<!--

 

//今日

 

var nweek = new Array("日","月","火","水","木","金","土");

 

var now = new Date();

 

var nYear = now.getFullYear();

 

var nMonth = now.getMonth() + 1;

 

var nDate = now.getDate();

 

var nweekjp = now.getDay();

 

 

 

//昨日

 

var tweek = new Array("日","月","火","水","木","金","土");

 

var tnow = new Date(nYear, nMonth, nDate - 1);

 

var tYear = tnow.getFullYear();

 

var tMonth = tnow.getMonth();

 

var tDate = tnow.getDate();

 

var tweekjp = now.getDay() - 1;

 

 

 

//明日

 

var yweek = new Array("日","月","火","水","木","金","土");

 

var ynow = new Date(nYear, nMonth, nDate + 1);

 

var yYear = ynow.getFullYear();

 

var yMonth = ynow.getMonth();

 

var yDate = ynow.getDate();

 

var yweekjp = now.getDay() + 1;

 

 

 

document.write("今日:"+nYear+"年"+nMonth+"月"+nDate+"日"+nweek[nweekjp]+"曜日<br>");

 

document.write("昨日:"+tYear+"年"+tMonth+"月"+tDate+"日"+tweek[tweekjp]+"曜日<br>");

 

document.write("明日:"+yYear+"年"+yMonth+"月"+yDate+"日"+yweek[yweekjp]+"曜日<br>");

 

 

 

//-->

 

</script>まず、now.getDay() - 1が-1,now.getDay() + 1が7になるとエラーになります。

 

したがって、日付を強引に1月6日などにすると正常に動作しているように見えます。

 

 

 

根本的な間違いは昨日と明日を求める方法のように思えます。

 

それから、曜日のテーブルは1回定義すればいいかと思います。

 

 

 

<script type="text/javascript">

 

<!--

 

//今日

 

var nweek = new Array("日","月","火","水","木","金","土");

 

var now = new Date();

 

var nYear = now.getFullYear();

 

var nMonth = now.getMonth() + 1;

 

var nDate = now.getDate();

 

var nweekjp = now.getDay();

 

 

 

//昨日

 

var now = new Date(); <=本当は不要かと思います。

 

now.setDate(nDate-1); 

 

var tYear = now.getFullYear();

 

var tMonth = now.getMonth() + 1;

 

var tDate = now.getDate();

 

var tweekjp = now.getDay();

 

 

 

//明日

 

var now = new Date(); <=1日に実行する場合は必要になるようです。

 

now.setDate(nDate+1); 

 

var yYear = now.getFullYear();

 

var yMonth = now.getMonth() + 1 ;

 

var yDate = now.getDate();

 

var yweekjp = now.getDay();

 

 

 

document.write("今日:"+nYear+"年"+nMonth+"月"+nDate+"日"+nweek[nweekjp]+"曜日<br>");

 

document.write("昨日:"+tYear+"年"+tMonth+"月"+tDate+"日"+nweek[tweekjp]+"曜日<br>");

 

document.write("明日:"+yYear+"年"+yMonth+"月"+yDate+"日"+nweek[yweekjp]+"曜日<br>");

 

 

 

//-->

 

</script>ありがとうございました!