さて、1980年1月1日ではなく、今度は2年後の今日の曜日を確認するスクリプトを作成しましょう。
先ほどのpractice8.htmlスクリプトに追加をします。mydateという変数ではなく今回はdate2という変数を使って作ってみましょう。
手順としては以下のようになります。
まず現在の日付情報を取得し、西暦年情報を取得します。次に西暦年に2を足し、再び日付情報を設定します。そして曜日を算出します。
// 現在の日付情報を取得する
var date2 = new Date();
// 西暦年に2を足す
var myyear = date2.getFullYear();
myyear += 2;
// 年情報を格納する
date2.setFullYear(myyear);
// 曜日情報を取得して表示する
myyoubi = date2.getDay();
document.write("2年後の今日は"+days[myyoubi]+"日です<br>");
ちゃんと曜日が表示されましたでしょうか。
次に、現在まで今年の1月1日から何日たっているかを計算させてみましょう。
例えば今日が2024年8月1日だったとしたら、1月が31日、2月が29日、3月が31日・・・と足していってもいいのですが、
せっかくjavascriptには、1970年1月1日からの経過時間を表すgetTimeというメソッドがありますので、これを使っていましょう。
以下の手順で算出してみましょう。
①現在の日付情報を取得する(data3に入れる)
②今年の1月1日00:00:00の日付情報を取得する(newyearに入れる)
③それぞれのDateオブジェクトの1970年1月1日以降の経過時間を取得する
④data3の経過時間から、newyearの経過時間を差し引く(1月1日からの経過時間がミリ秒単位で算出)
⑤秒単位の時間差に換算(1000倍する)
⑥分単位の時間差に換算(60倍する)
⑦時単位の時間差に換算(60倍する)
⑧日単位の時間差に換算(24倍する)
⑨小数点以下を切り捨てる
⑤〜⑧は一括で構わないですね。
では、スクリプトを書いてみてください。
// 現在の日付情報を取得する
var date3 = new Date();
//西暦年情報を取得し、その年の1月1日の日付情報を取得する
var thisyear = date3.getFullYear();
var newyear = new Date(thisyear,0,1);
// それぞれの経過時間を取得する
var thistime = date3.getTime();
var newyeartime = newyear.getTime();
// 差を取得する
var sa = thistime – newyeartime;
// 日単位の差に変換し、小数点以下を切り捨てる
var sa_day = Math.floor( sa / (1000 * 60 * 60 * 24 ) );
// 経過日数を表示する
document.write(this year + "年が始まって、"+sa_day+"日経ちました。 <br>");
何日経過したかがわかりますね。