• ベストアンサー

javascriptで日付の足し算できますか?

javascript初心者です。宜しくお願いします。 javascriptで日付の足し算はどうやってやればいいのうでしょうか? 例えば今日から10日後を計算する場合、 a=new Date() b=a+10 と書いてもうまくいきません。どうすればいいのでしょうか?

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

  • ベストアンサー
  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.1

http://www.usagi-js.com/bbs/jsforum.cgi?mode=allread&no=8641&page=10 ここら辺が参考にできるかと。。。 応用で http://www2s.biglobe.ne.jp/~iryo/java/java1/date.html とかも載せておいてみます。

hans2007
質問者

お礼

回答ありがとうございます。 上記のサイト大変参考になりました。 これからちょくちょくそのサイトもみて勉強させてもらいます。 ありがとうございました。

その他の回答 (1)

  • leap_day
  • ベストアンサー率60% (338/561)
回答No.2

こんにちは a=new Date(); で取るとaの中には Wed Jul 25 18:45:46 UTC+0900 2007 と入っているのでここから+10することは出来ません(><) ですので a.getMonth();やa.getDate();などで分離してやってから計算するようになります 最後の(;)忘れずに(^^)

hans2007
質問者

お礼

回答ありがとうございます。 問題が解決できました。 行の最後に(;)を付け忘れる事が多く そのせいでエラーが出ることもあったりするので 気をつけたいと思います。 ありがとうございました。

関連するQ&A

  • Javascriptで、以下の様な足し算をする場合、

    Javascriptで、以下の様な足し算をする場合、 aからdのいずれかが空白の時には計算結果が表示されません。 いずれかが空欄の場合はその値をゼロとみなして計算結果を 表示したいのですが、記述方をご教授頂けないでしょうか。 用いる演算は、足し算と引き算のみを想定しています。 基本的な内容かとは思いますが、宜しくお願いします。 <script> var a = 1; var b = 3; var c = 5; var d = 7; document.write(a+b+c+d); </script>

  • javascriptでの日付更新の時間について

    初歩的なことですいませんが・・・ Javascriptについてご教授ください。 以下のような日付を表示するJavascriptがあります。 <SCRIPT LANGUAGE="JavaScript"> <!-- date = new Date(); y = date.getFullYear(); m = date.getMonth() + 1; d = date.getDate(); if (m < 10) { m = "0" + m; } if (d < 10) { d = "0" + d; } document.write(y + "/" + m + "/" + d); // --> </SCRIPT> これの場合、何時に見ようが今現在の日付が表示されますよね・・・ 例えばこれを午前10時になったら今日の日付に表示を変える・・・みたいなことってできますか?? (つまり午前0:00から9:59までは前日の日付を表示させるということなのですが・・・) 分かりにくかったらすいません。 どうかよろしくお願いします><

  • 明日の日付

    お世話になります。 一週間のスケジュールをWEB上で表示するのにJavaScriptで日付を取得したいです。 本日の曜日を判定して一週間後の日付を計算させたくて以下のJavaScriptを書きました。 w = (new Date()).getDay(); if(w == 1) { mydate=new Date(); Ye=mydate.getFullYear()+"年"; Mo=mydate.getMonth()+1+"月"; Da=mydate.getDate()+"日"; document.write(Mo+Da+"(月)"); } if(w == 2) { mydate=new Date(); Ye=mydate.getFullYear()+"年"; Mo=mydate.getMonth()+1+"月"; Da=mydate.getDate()+6+"日"; document.write(Mo+Da+"(月)"); } この書き方だと月末がうまく処理出来ません。 32日33日となってしまいます。 正しいJavaScriptの記述を教えて下さい。 宜しくお願いいたします。

  • このjavascriptコードを短くできませんか?

    javascript初心者です。 どなたか下記のコードを短くしていただけないでしょうか? 変数1~変数12まであるので、それぞれコードを書いたら長くなってしまいました。 このままでもうまく動いてはいるのですが、もし短くできるならしたいなと思いまして。 よろしくお願いいたします。 <script type="text/javascript"> <!-- //基準になる日を設定 inputDay1 = "変数1"; //指定日を変数に var hairetu = inputDay1.split("/"); var nowday = new Date(); //今日の日付 var xday = new Date(hairetu[0],hairetu[1] - 1,hairetu[2]);//基準になる日 var countday1 = Math.ceil((xday.getTime() - nowday.getTime()) / (1000 * 60 * 60 * 24)); inputDay2 = "変数2"; //指定日を変数に var hairetu = inputDay2.split("/"); var nowday = new Date(); //今日の日付 var xday = new Date(hairetu[0],hairetu[1] - 1,hairetu[2]);//基準になる日 var countday2 = Math.ceil((xday.getTime() - nowday.getTime()) / (1000 * 60 * 60 * 24)); inputDay3 = "変数3"; //指定日を変数に var hairetu = inputDay3.split("/"); var nowday = new Date(); //今日の日付 var xday = new Date(hairetu[0],hairetu[1] - 1,hairetu[2]);//基準になる日 var countday3 = Math.ceil((xday.getTime() - nowday.getTime()) / (1000 * 60 * 60 * 24)); inputDay4 = "変数4"; //指定日を変数に var hairetu = inputDay4.split("/"); var nowday = new Date(); //今日の日付 var xday = new Date(hairetu[0],hairetu[1] - 1,hairetu[2]);//基準になる日 var countday4 = Math.ceil((xday.getTime() - nowday.getTime()) / (1000 * 60 * 60 * 24)); inputDay5 = "変数5"; //指定日を変数に var hairetu = inputDay5.split("/"); var nowday = new Date(); //今日の日付 var xday = new Date(hairetu[0],hairetu[1] - 1,hairetu[2]);//基準になる日 var countday5 = Math.ceil((xday.getTime() - nowday.getTime()) / (1000 * 60 * 60 * 24)); inputDay6 = "変数6"; //指定日を変数に var hairetu = inputDay6.split("/"); var nowday = new Date(); //今日の日付 var xday = new Date(hairetu[0],hairetu[1] - 1,hairetu[2]);//基準になる日 var countday6 = Math.ceil((xday.getTime() - nowday.getTime()) / (1000 * 60 * 60 * 24)); inputDay7 = "変数7"; //指定日を変数に var hairetu = inputDay7.split("/"); var nowday = new Date(); //今日の日付 var xday = new Date(hairetu[0],hairetu[1] - 1,hairetu[2]);//基準になる日 var countday7 = Math.ceil((xday.getTime() - nowday.getTime()) / (1000 * 60 * 60 * 24)); inputDay8 = "変数8"; //指定日を変数に var hairetu = inputDay8.split("/"); var nowday = new Date(); //今日の日付 var xday = new Date(hairetu[0],hairetu[1] - 1,hairetu[2]);//基準になる日 var countday8 = Math.ceil((xday.getTime() - nowday.getTime()) / (1000 * 60 * 60 * 24)); inputDay9 = "変数9"; //指定日を変数に var hairetu = inputDay9.split("/"); var nowday = new Date(); //今日の日付 var xday = new Date(hairetu[0],hairetu[1] - 1,hairetu[2]);//基準になる日 var countday9 = Math.ceil((xday.getTime() - nowday.getTime()) / (1000 * 60 * 60 * 24)); inputDay10 = "変数10"; //指定日を変数に var hairetu = inputDay10.split("/"); var nowday = new Date(); //今日の日付 var xday = new Date(hairetu[0],hairetu[1] - 1,hairetu[2]);//基準になる日 var countday10 = Math.ceil((xday.getTime() - nowday.getTime()) / (1000 * 60 * 60 * 24)); inputDay11 = "変数11"; //指定日を変数に var hairetu = inputDay11.split("/"); var nowday = new Date(); //今日の日付 var xday = new Date(hairetu[0],hairetu[1] - 1,hairetu[2]);//基準になる日 var countday11 = Math.ceil((xday.getTime() - nowday.getTime()) / (1000 * 60 * 60 * 24)); inputDay12 = "変数12"; //指定日を変数に var hairetu = inputDay12.split("/"); var nowday = new Date(); //今日の日付 var xday = new Date(hairetu[0],hairetu[1] - 1,hairetu[2]);//基準になる日 var countday12 = Math.ceil((xday.getTime() - nowday.getTime()) / (1000 * 60 * 60 * 24)); if (countday1 < 0)document.write("111"); if (countday2 < 0)document.write("222"); if (countday3 < 0)document.write("333"); if (countday4 < 0)document.write("444"); if (countday5 < 0)document.write("555"); if (countday6 < 0)document.write("666"); if (countday7 < 0)document.write("777"); if (countday8 < 0)document.write("888"); if (countday9 < 0)document.write("999"); if (countday10 < 0)document.write("101010"); if (countday11 < 0)document.write("111111"); if (countday12 < 0)document.write("121212"); --> </script>

  • エクセルの足し算

    エクセルで四捨五入の計算式を入れたセルどうしを足し算すると1合わなくなってしまいます。 セルAに620が入っていて、セルBにAの値620×167.66四捨五入をした数字を入れ、その結果のセルBの値を3行足し算すると1合わなくなります。 セルBは103,949になり3行足すと311,848になってしまうのです。 どうしたら良いか教えてください。

  • JavaScriptでの足し算処理について

    本日よりJavaScriptに取り組んでいますが、いきなり足し算の処理でつまずきました。 下記の様にdeta1に10を入れ、計算ボタンを押すとdeta2に25が入るような処理を行いたいのですが、10が文字として認識されてしまうらしく、deta2が1015になってしまいます。 かなり基本的なことだと思いますが、どうすればよいか教えてください。 <script language="JavaScript"> <!-- function func1(){ document.test.deta2.value=document.test.deta1.value+15; } //--> </script> <form name=test> <INPUT type="text" name="deta1"> <INPUT type=button value="計算" onClick=func1()> <INPUT type="text" name="deta2"> </form>

  • javascript 自動日付更新

    宜しくお願いします。 サイトをアップした日付を、自動で更新したいです。 今までは、こちらのjavascriptを使っていたのですが、これですとブラウザ、クロムに対応していません。 文字化けしてしまいます。 <SCRIPT language="JavaScript"> <!-- renew = new Date(document.lastModified); y=renew.getYear(); m=renew.getMonth() + 1; d=renew.getDate(); if(y<1900) {y=y+1900;} document.write("最終更新日:"+y+"年"+m+"月"+d+"日"); //--> </SCRIPT> クロムでも動くjavascriptのコードはありませんか? 何卒、宜しくお願い致します。

  • javascriptで繰り返し処理

    javascript初心者です。 指定した回数だけ計算を続けるjavascriptを作成したいです。 たとえば・・・ A=1000、B=20、i=5 とすると、 A-B、その計算結果-B、さらにその計算結果-B・・・と、 引き算を5回繰り返し、Cというフィールドにその計算結果を表示させたいです。 1000-20=980 980-20=960 960-20=940 940-20=920 90-20=900 C=900 どのように記述すればいいのでしょうか? お願いいたします!!

  • 日付や時刻を取得する関数について

    JavaScriptで var date = new Date() ; var d = date.getDate(); で今日の日付を取得できると思うのですが、 自分の環境は日本なので今現在では6(日)を取得します。 それでは例えば外国の別の場所でこのスクリプトを実行したら その国の日付をちゃんと取得できているのでしょうか? getUTCDate()ととの違いもよくわからないので、そこらへんも含めて解説していただけないでしょうか?

  • JavaScriptがマックのサファリでは、正しく動きません。

    11月24日まで、あと何日です。というように日にちを表示させたいのですが、WindowsのIE6なら正しく日付が表示されるのですが、マックのサファリだととんでもない数字が表示されます。 どなたか、どちらでも正しく表示させられる方法を教えてください。お願いいたします。 <script language="javascript"> <!-- var sakiday = new Date("2005/11/24"); var now = new Date(); var tokuteiday = Math.floor((sakiday.getTime()-now.getTime())/(24*60*60*1000)); document.write("<b>"+tokuteiday+"</b>"); //--> </script>

専門家に質問してみよう