DateDiff 関数

DateDiff(strInterval, varDate1, varDate2 [, lngWeek, lngYear])

指定された 2 つの日付の時間間隔を返します。

引数

strInterval
引数 varDate1 と引数 varDate2 の間隔を計算するための、時間間隔の単位を表す文字列式を指定します。
設定する値については、次の「設定値」を参照してください。
varDate1, varDate2
日付式を指定します。間隔を計算する 2 つの日付を指定します。
varDate2 よりも時間的に後の日付を引数 varDate1 に指定すると、DateDiff 関数は負の数を返します。
日付リテラルを指定した場合、指定した年が日付の固定部分となります。
ただし、ダブルクォーテーション (") で囲み、年を省略すると、式が評価されるたびに現在の年が挿入されます。
lngWeek
省略可能です。
週の始まりの曜日を表す定数を指定します。省略すると、日曜日が指定されます。
定数 内容
vbUseSystemDayOfWeek 0 各国語対応 (NLS) API の設定値を使用します。
vbSunday 1 日曜(既定値)
vbMonday 2 月曜
vbTuesday 3 火曜
vbWednesday 4 水曜
vbThursday 5 木曜
vbFriday 6 金曜
vbSaturday 7 土曜
lngYear
省略可能です。
年度の第 1 週を表す定数を指定します。省略すると、1 月 1 日を含む週が第 1 週と指定されます。
定数 内容
vbUseSystem 0 各国語対応 (NLS) API の設定値を使用します。
vbFirstJan1 1 1 月 1 日を含む週を年度の第 1 週として扱います。(既定値)
vbFirstFourDays 2 7 日のうち少なくとも 4 日が新年度に含まれる週を年度の第 1 週として扱います。
vbFirstFullWeek 3 全体が新年度に含まれる最初の週を年度の第 1 週として扱います。

設定値/使用例

設定値 内容 使用例 結果
yyyy DateDiff("yyyy", "2005/12/31", "2006/01/01") 1(1日後であっても、年が変われば"1"を返す)
q 四半期 DateDiff("q", "2005/01/01", "2006/01/01") 4
m DateDiff("m", "2005/01/01", "2006/01/01") 12
y 年間通算日 DateDiff("y", "2005/01/01", "2006/01/01") 365
d DateDiff("d", "2004/01/01", "2005/01/01") 366(閏年)
w 週日 DateDiff("w", "2005/02/07", "2005/02/20") 1(2 つの日付の間の週の数 *1)
ww DateDiff("ww", "2005/02/07", "2005/02/20") 2(2 つの日付の間の暦上の週の数 *2)
h DateDiff("h", "2005/01/01", "2005/01/02") 24
n DateDiff("n", "2005/01/01", "2005/01/02") 1440
s DateDiff("s", "2005/01/01", "2005/01/02") 86400

備考

DateDiff 関数を使うと、ある日付に対して指定した時間間隔を、加えたり引いたりすることができます。
たとえば、現在から 30 日後の日付や、現在から 45 分後の時刻などを計算できます。
引数 varDate に日数を加えるには、年間通算日 ("y")、日 ("d")、週日 ("w") のいずれかを指定します。

DateDiff 関数は、無効な日付を返しません。
strDate = DateDiff("m", 1, "2005/01/31")
上記の例では "2005/02/31" ではなく "2005/02/28" を返します。
strDate = DateDiff("m", 1, "2004/01/31")
上記の例では、2004年は閏年なので "2004/02/29" を返します。

計算の結果、日付が西暦 100 年以前になる場合は、エラーが発生します。

関連

DateAdd 関数 | Date_Part 関数

  • 最速攻略VBScriptサンプル大全集

    好評の「最速攻略 VBScript サンプル大全集」の改訂版です。これまでのWindows2000/XPに加え、Windows Vista、最新のWindows 7環境にも対応しています。Windows上での処理の自動化や一括処理(バッチ処理)をテーマとしたVBScriptのサンプルスクリプト集です。付属 CD-ROMには、すぐに使うことができる100以上のサンプルスクリプトを用意しています。

  • VBScriptポケットリファレンス改訂版

    WebでもWindowsでも使えるVBScriptだから手元においてさっと引けるこの一冊!VBScript5.6に対応!待望の改訂版!目的別リファレンスでやりたいことから調べられます。すべての項目にサンプルコード掲載!WSH、ASP、IEすべての環境でお役に立ちます。

  • Excel VBAポケットリファレンス改訂第3版

    好評のExcel VBAポケットリファレンスが改訂第3版としてリニューアルしました。知りたいコマンドがすぐ調べられる機能引きリファレンスはそのままに、最新の Excel 2010に完全対応。もちろん、これまでのExcel 97、2000、2002、2003、2007のすべてのバージョンに対応しています。「こんなときどうするの?」「どう書けばいいの?」という疑問がすぐ解決する、全てのExcel VBAユーザー必携の、最強のリファレンスブックです!

  • Access VBA逆引きハンドブック

    本書はAccess VBAの各機能を、豊富なプログラミング例を使って、初心者にもわかりやすく、かつ網羅的に解説しています。また、やりたいことを目的別に簡単に探せる「逆引き」の構成になっています。

このページの先頭へ