質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

解決済

1回答

2066閲覧

Google Spreadsheetで今日の日付から7日前の日付と曜日を入力させたい。

nisioisn

総合スコア19

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2016/09/09 07:23

###前提・実現したいこと
ここに質問したいことを詳細に書いてください
Google Spreadsheetでシート1の2行目の下に5行挿入してB3に7日前の日付と曜日、B6に今日の日付を入力させたい。
###発生している問題・エラーメッセージ
B3の日付が1900/01/01になります

エラーメッセージ エラーメッセージはありません。 ###該当のソースコード var ss = SpreadsheetApp.openById('id1'); var sh = ss_copyTo.getSheetByName('シート1'); sh.insertRowsAfter(2, 5); sh.getRange("B3:B6").setNumberFormat("mm/dd dddd"); var week = new Array("日", "月", "火", "水", "木", "金", "土"); var dt = new Date(); var dayOfWeek = week[dt.getDay()]; //今日の日付入力 sh.getRange("B6").setValue(dt); //7日前の日付入力 sh.getRange("B3").setValue(dt.getDate()-7); /* ###試したこと 課題に対してアプローチしたことを記載してください ###補足情報(言語/FW/ツール等のバージョンなど) より詳細な情報

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

getDateは1-31の数値を返す関数なので、おそらく4行目で表示形式を指定しているために、今日実行したなら9-7で2を無理やり日と解釈して表示しています。
2はdateで表現できる最小値より0.002秒だけ進んだ時間なんでしょうね。

最後の所、こんな感じで動作するのではないでしょうか?

javascript

1dt.setDate(dt.getDate()-7); 2sh.getRange("B3").setValue(dt);

投稿2016/09/09 08:25

hirohiro

総合スコア2068

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nisioisn

2016/09/09 08:42

解答ありがとうございます。アドバイス通りのコードでうまく動作しました。 丁寧な解説もすごく参考になりました。すごく助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問