DateAdd 関数
DateAdd(strInterval, lngNum, varDate)
指定された時間間隔を加算した日付を返します。
引数
- strInterval
- 追加する時間間隔の単位を表す文字列式を指定します。
設定する値については、次の「設定値」を参照してください。 - lngNum
- 追加する時間間隔の数を表す数式を指定します。
将来の日時を取得するには正の数を指定します。過去の日時を取得するには負の数を指定します。
指定した値が長整数型 (Long) でない場合は、最も近い整数値に丸められてから評価されます。 - varDate
- 時間間隔を追加する日付を表すバリアント型 (Variant) の値またはリテラル文字列を指定します。
設定値/使用例
設定値 | 内容 | 使用例 | 結果 |
---|---|---|---|
yyyy | 年 | DateAdd("yyyy", 1, "2004/01/01") DateAdd("yyyy", -1, "2004/01/01") |
2005/01/01 2003/01/01 |
q | 四半期 | DateAdd("q", 1, "2004/01/01") DateAdd("q", -1, "2004/01/01") |
2004/04/01 2003/10/01 |
m | 月 | DateAdd("m", 1, "2004/01/01") DateAdd("m", -1, "2004/01/01") |
2004/02/01 2003/12/01 |
y | 年間通算日 | DateAdd("y", 1, "2004/01/01") DateAdd("y", -1, "2004/01/01") |
2004/01/02 2003/12/31 |
d | 日 | DateAdd("d", 1, "2004/01/01") DateAdd("d", -1, "2004/01/01") |
2004/01/02 2003/12/31 |
w | 週日 | DateAdd("w", 1, "2004/01/01") | DateAdd("w", -1, "2004/01/01") | 2004/01/02 2003/12/31 |
ww | 週 | DateAdd("ww", 1, "2004/01/01") DateAdd("ww", -1, "2004/01/01") |
2004/01/08 2003/12/25 |
h | 時 | DateAdd("h", 1, "2004/01/01") DateAdd("h", -1, "2004/01/01") |
2004/01/01 1:00:00 003/12/31 23:00:00 |
n | 分 | DateAdd("n", 1, "2004/01/01") DateAdd("n", -1, "2004/01/01") |
2004/01/01 1:00:00 003/12/31 23:59:00 |
s | 秒 | DateAdd("s", 1, "2004/01/01") DateAdd("s", -1, "2004/01/01") |
2004/01/01 1:00:00 003/12/31 23:59:59 |
次のコードは、DateAdd 関数を使って与えられた月の末日を調べる例です。
'年月日を返します。 Function GetLastDay(MyDate) Dim strDate '与えられた日付の翌月を求めます。 strDate = DateAdd("m", 1, MyDate) '日にちを1日にします。 strDate = Year(strDate) & "/" & Right("0" & Month(strDate), 2) & "/01" '一日前を求めます。 strDate = DateAdd("d", -1, strDate) GetLastDay = strDate End Function
備考
DateAdd 関数を使うと、ある日付に対して指定した時間間隔を、加えたり引いたりすることができます。
たとえば、現在から 30 日後の日付や、現在から 45 分後の時刻などを計算できます。
引数 varDate に日数を加えるには、年間通算日 ("y")、日 ("d")、週日 ("w") のいずれかを指定します。
DateAdd 関数は、無効な日付を返しません。
strDate = DateAdd("m", 1, "2005/01/31")
上記の例では "2005/02/31" ではなく "2005/02/28" を返します。
strDate = DateAdd("m", 1, "2004/01/31")
上記の例では、2004年は閏年なので "2004/02/29" を返します。
計算の結果、日付が西暦 100 年以前になる場合は、エラーが発生します。
マイナスを指定してあげれば引くことが出来ます。
例えば1日前の場合は、-1 を加えてあげれば良いことになります。
strDate = DateAdd("d", -1, "2004/01/31")