明日の曜日表示明日の曜日表示 以下は、今日、昨日、明日の日付を取得するスクリプトです。
今日と昨日は正しく表示されますが、
明日の曜日が「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>ありがとうございました!