日付を計算するには DateAdd 関数を使う。
DateAdd( Interval, Number, Date )
- Interval: 追加する時間間隔を表す文字列
- Number: 追加する時間間隔を表す値。プラスの数なら将来、マイナスの数なら過去の日時となる。
- Date: 計算の元になる日付
Interval に指定できる値は以下のとおり。
- yyyy: 年
- q: 四半期
- m: 月
- y: 年間通算日
- d: 日
- w: 週日
- ww: 週
- h: 時
- n: 分
- s: 秒
例)10日後を求める。
WScript.Echo DateAdd("d", 10, #2023-01-02 03:04:05#)
' → 2023/01/12 3:04:05
例)1週間前を求める。
WScript.Echo DateAdd("ww", -1, #2023-01-02 03:04:05#)
' → 2022/12/26 3:04:05
計算結果が西暦100年よりも前になる場合はエラーが発生する。
エラーの内容は「Microsoft VBScript 実行時エラー: プロシージャの呼び出し、または引数が不正です。: ‘DateAdd’」
WScript.Echo DateAdd("yyyy", -1924, #2023-01-02 03:04:05#)
' → 西暦99年になるのでエラー
計算後の日付が存在しない日付であってもエラーにはならない。
自動で補正される。
試してみた限り、直前の存在する日付に補正されるよう。
例)2022年8月31日の1ヶ月後は、2022年9月30日となる。
WScript.Echo DateAdd("m", 1, #2022-08-31#)
' → 2022/09/30
例)2022年8月31日の2ヶ月前は、2022年6月30日となる。
WScript.Echo DateAdd("m", -2, #2022-08-31#)
' → 2022/06/30
例)2022年8月31日の6ヶ月前は、2022年2月28日となる。
WScript.Echo DateAdd("m", -6, #2022-08-31#)
' → 2022/02/28