Google Apps Script

【GAS】今日から「Nヶ月後の日付」「N日後の日付」を求める

こんにちは、もり(moripro3)です!

GASのDateオブジェクトを使った日付処理のメモ。請求書作成などに必要な「未来日付」の算出に便利です。

この記事では「今日の○ヶ月後は何月何日?」「今日の○日後は何月何日?」をGASで計算するスクリプトを紹介します。

【基本】今日の「月」「日」を取得する

まずはDateオブジェクトの基本を確認しましょう。

・Dateオブジェクト.getMonth()
Dateオブジェクトの「月」を取得する(0-11)

・Dateオブジェクト.getDate()
Dateオブジェクトの「日」を取得する(1-31)

Dateオブジェクトの日付が「2019年10月19日」の場合の実行結果です。

※getMonthメソッドの戻り値は、「1月~12月」が「0~11」になります。10月の場合「9」が返ります。

今日の「Nヶ月後の日付」を求める

今日の「3ヶ月後の日付」を求める方法です。

Dateオブジェクト.setMonth(引数)
Dateオブジェクトの「月」を設定する

※今年1月を 0 とした場合の「nヶ月後」を設定します

まず、getMonthメソッドで現在の「月」を取得します。10月の場合は「9」が返ります。

「今日の3ヶ月後」を求めるので、getMonthメソッドの戻り値を +3 します。Dateオブジェクトの「月」が3ヶ月後になります。

たとえば +6 とすれば、6ヶ月後の日付になります。

今日の「N日後の日付」を求める

今日の「90日後の日付」を求める方法です。「3ヶ月後」と「90日後」は違いますからね。

・Dateオブジェクト.setDate(引数)
Dateオブジェクトの「日」を設定する

※今月1日を0とした場合の「n日後」を設定します

まず、getDateメソッドで現在の「日」を取得します。Dateオブジェクトが19日の場合、「19」が返ります。

「今日の90日後」を求めるので、getDateメソッドの戻り値を +90 します。Dateオブジェクトの「日」が90日後になります。

【解説】今月1日を0とした場合の「n日後」を設定、とは?

Dateオブジェクトが「2019年10月19日」の場合、getDateメソッドの返り値は 19 です。 19 + 90 は 109 です。

つまり、

と同じ意味になります。

 

setDateメソッドは、今月1日を 0 とした場合の「109日後」を設定します。

今月1日が「2019年10月1日」なので、その「109日後」である「2020年1月17日」になる、という仕組みです。