• ベストアンサー

JavaScript で日数の加算をしたい

Java Scriptを少しずつ勉強しています。 例えば、フォームに西暦「2000」年と入れると、 自動的に「2000年12月31日」から1234日後の日付を表示させるようにしたいです。 どんなふうに書けば、できますか? まだ初心者なのでよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.2

回答1の ミリ秒で日付を取得 から 書き出す までの5行を var addDate = 1234;//1234日 dt.setDate(dt.getDate()+addDate);//1234日後の日付をセットする document.getElementById("hiduke").innerHTML = dt.getFullYear() + "年"+(dt.getMonth()+1) + "月" + dt.getDay() + "日";// 書き出す に変えてください

KugaKaori
質問者

お礼

ありがとうございます。 大変助かりました。

その他の回答 (1)

  • t_ohta
  • ベストアンサー率38% (5253/13739)
回答No.1

こんな感じでしょうかね。 Dateオブジェクトを使って計算すると日付、時刻の計算が出来ます。 <input id="year" type="text">年12月31日の1234日後は<span id="hiduke"></span>です。<br> <button type="button" onclick="After1234();">計算</buttn> <script> function After1234 () { var y = document.getElementById("year").value; var dt = new Date(y, 12 - 1, 31);//元の日付をセット var baseSec = dt.getTime();//ミリ秒で日付を取得 var addSec = 1234 * 86400000;//1234日 * 1日のミリ秒数 var targetSec = baseSec + addSec;//足す dt.setTime(targetSec);//1234日後の日付をセットする document.getElementById("hiduke").innerHTML = dt.getFullYear() + "年"+dt.getMonth() + "月" + dt.getDay() + "日";// 書き出す } </script>

KugaKaori
質問者

補足

詳しい回答ありがとうございます。 で、動作させてみたのですが、なぜか計算が合いません・・・ 例えば、「2000年12月31日の1234日後は2004年4月2日です。」 と出ました。

関連するQ&A

専門家に質問してみよう