• ベストアンサー

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% (5081/13278)
回答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

  • JavaScript で年数、日数の加算をしたい

    Java Scriptを少しずつ勉強しているのですが、なかなか進歩しません。 教えてください。 例えば、フォームに西暦「2000」年と入れると、 そこから自動的に5年後の年末「2005年12月31日」から、さらに1180日後の日付を表示させるようにしたいです。 どんなふうに書けば、できますか?

  • javascriptで入力フォームに日付(和暦)を入力して西暦表示にする方法と曜日を表示させる方法を教えて下さい。

    凄く悩んでいるのですが、良かったら教えてください。 入力フォームに 日付 平成16年07月28日なら 『160728』 と入力し、そのすぐ横に 曜日を『(月)』と表示させたい のですが、どうもうまくいきません。 教えてください。 以前教えていただいた西暦「20040728」 と入力したら、(水)と出たのですが、 和暦入力の場合でわからなくて、困っています。 テキストフォームに(月)と表示させたいのでは なく、<span>タグを使用して作成したいのです。 また、和暦を『160728』入力したら、 表示先には、西暦「20040728」と表示させる には、どうしたらいいでしょうか? ご伝授お願いします。

  • 総日数を求める

    引数として与えた西暦・月日から現在の日付までの 総日数を調べる関数が紹介されているページがあれば 教えて下さい。 自分ならこう書く、なんていうのでも結構です。

  • ACCESSのフォームに本日の日付を西暦表示したいです。

    ACCESSのフォームに本日の日付を西暦表示したいです。たとえば・・・ 平成16年5月20日  という感じで・・・ どなたか教えてください・ テキストボックスを使っています。

  • HTMLとJAVASCRIPT

    HTMLは、比較的簡単に打ち込めて、 簡易的なHPを作成できると思っています。 ジャバスクリプトというのは、 どのように打ち込むとHPが作成できるのでしょう? そして、どう違うのですか? 最近、HPのソースを表示すると、 なんだか「JAVASCRIPT」の文字をよく目にするようになりました。 僕も、HTMLタグだけじゃなく、 javascriptも使用してみたいです。 誰か参考になるサイト等、教えてください。 お願いします。 それと、ジャバスクリプトを使用したら、 どのような長所ができるのでしょうか? 楽しいHPが作れるのは、聞いたことがあります。 画像を回転させたりしていましたので・・・。 誰か、ジャバスクリプトで作成したHP知っている人いたら、 教えてください。 最終的な質問内容 ・ジャバスクリプトとは? ・ジャバスクリプトはどうやって打ち込むのか ・ジャバスクリプトについて、初心者でもわかるサイトを教えてください

  • Word2003 日付の書式書式ggge年M月について教えてください。

    日付の書式について思った通りの結果にならず、困っています。 あるテキストを使用して、フォームの作成をしています。 テキストボックスフォームで、日付の書式が異なる「日付」を2つ作る指示があります。 指示通りに作成し、作成後に入力をすると思い通りの結果が得られません。 下記に指示と結果を記します。 <テキストの指示> ※テキストボックスフォームフィールドを2箇所設定、各々のオプションで下記の設定を行うものです。 (1)種類「日付」、日付の書式「ggge年M月d日(aaa)」  ヘルプの追加でステータスバーに"半角で西暦下2桁/月/日を入力"と表示させる。 (2)種類「日付」、日付の書式「ggge年M月」  ヘルプの追加でステータスバーに"半角で西暦下2桁/月を入力"と表示させる。 <入力結果> (1)の箇所に"09/06/27"と入力すると、"平成21年6月27日"と思い通りの結果が表示されます。 (2)の箇所に"09/06"と入力すると、"平成21年9月"と表示されてしまいます。 (2)の箇所に"2009/06"と入力すると、"平成21年6月"と思い通りの結果が得られます。 "ggge年"は、西暦4桁で入力されるべきものなのでしょうか? テキストにあるヘルプの追加で表示させる"半角で西暦下2桁/月を入力"は正しいのでしょうか? どなたかご存知の方がいらっしゃいましたら教えてください。

  • FLASH上で日数カウントダウン

    あるイベント開催日までの「あと○○日」というカウントダウン表示を自動でFALSH上で行いたいのですが、 色々調べてみても、その日の日付を表示させる方法しか見つけることができませんでした・・。 例えばここなどですが、 http://www.okweb.ne.jp/kotaeru.php3?q=805707 ↑ここのスクリプトをどうにか変えれば良いのかなとも思ったのですがよく分からなかった次第です。 どなたか具体的な方法、もしくはサンプルなどが記載されているページなどご存知ないでしょうか? よろしくお願い致します。

    • ベストアンサー
    • Flash
  • エクセルで6月30日と入力したときの西暦が前の年になるのは?

     今日の日付は西暦2005年1月13日ですが、エクセルのセルに単に「6月30日」と入力した際、表示形式を西暦にしてみると「2004年」で表示されます。  2005年の1月1日を堺に、日付を入力した際の西暦は全て2005年になるとばかり思っていたので、最初は私のパソコン時計が狂っているのかと思いましたが、そうではないようです。  ということは、年指定せず明日以降の日付を入力した場合は、昨年の西暦になると思っていいのでしょうか?

  • アクセスで日付データの和暦表示と西暦表示を切り替えたいのですが

    日付データを10種類近く(データ入力日、提出日、発行日等)配置したフォームを作っています。 このフォーム中で表示させている全ての日付データを、同じフォームに配置したボタンを押す度に、和暦表示と西暦表示とに切り替えるようにしたいのですが、うまくできません。どのようにしたらよいのでしょうか?

  • エクセルVBA テキストボックス 日付表示

    エクセルVBAにて入力用フォームを開いたときに フォーム内にあるテキストボックスに今日の日付が 自動で表示されるようにしたいのですが どの様に書き込めば宜しいでしょうか? また、2008.09.05 平成20年9月5日などの 日付形式の変更はどの様に書き込むのでしょうか?

専門家に質問してみよう