ImpressCMS
HOME  >  JSCRIPT  > 様々なオブジェクト > Dateオブジェクト > 日付の計算をやってみる

 6 - 5 - 3 : 日付の計算をやってみる

さて、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>");

何日経過したかがわかりますね。


Publish : 3317 bytes - updated 2024-08-01 by 管理人