DateDiff 関数は指定した2つの日付の時間間隔を整数値で返します。時間間隔の単位は引数で指定することができます。
DateDiff関数の使用方法
構文
DateDiff (Interval , Date1 , Date2 [, FirstDayOfWeek] [, FirstWeekOfYear])
【戻り値】 バリアント型 (内部処理形式 Date の Variant)
引数名 |
省略 |
説明 |
Interval |
× |
時間間隔の単位を表す文字列式を指定します。
|
Date1Date2 |
× |
時間間隔を取得したい日付を指定します。
Date1 < Date2 の場合、正の値が返されます。
|
FirstDayOfWeek |
○ |
週の始まりの曜日を表す定数を指定します。
省略すると、日曜日を指定したものとみなされます。
|
FirstWeekOfYear |
○ |
年度の第 1 週を表す定数を指定します。
省略すると、1 月 1 日を含む週が第 1 週とみなされます。
|
引数 Interval に指定可能な定数
設定値 |
説明 |
yyyy |
年 |
q |
四半期 |
m |
月 |
y |
年間通算日 |
d |
日 |
w |
週日 |
ww |
週 |
h |
時 |
n |
分 |
s |
秒 |
引数 FirstDayOfWeek に指定可能な定数
定数 |
値 |
説明 |
vbUseSystem |
0 |
NLS API の設定値を使用します。
|
vbSunday |
1 |
(既定値) 日曜 |
vbMonday |
2 |
月曜 |
vbTuesday |
3 |
火曜 |
vbWednesday |
4 |
水曜 |
vbThursday |
5 |
木曜 |
vbFriday |
6 |
金曜 |
vbSaturday |
7 |
土曜 |
引数 FirstWeekOfYear に指定可能な定数
定数 |
値 |
説明 |
vbUseSystem |
0 |
NLS API の設定値を使用します。
|
vbFirstJan1 |
1 |
(既定値) 1 月 1 日を含む週から始まります。
|
vbFirstFourDays |
2 |
年の 4 日以上が含まれる最初の週から始まります。
|
vbFirstFullWeek |
3 |
年のうち、7 日が含まれる最初の週から始まります。
|
DateDiff関数の使用例
日付の差分をさまざまな形式で表示する例です。
Sub sample_ef039_01()
Dim wDate1 As Date
Dim wDate2 As Date
'変数に日付と時刻を設定
wDate1 = DateSerial(2013, 4, 1) + TimeSerial(1, 23, 45)
wDate2 = DateSerial(2013, 5, 5) + TimeSerial(12, 34, 56)
Debug.Print "日付1:" & wDate1
Debug.Print "日付2:" & wDate2
Debug.Print "四半期:" & DateDiff("q", wDate1, wDate2)
Debug.Print "月 :" & DateDiff("m", wDate1, wDate2)
'2つの日付の間にある週の数
Debug.Print "週日 :" & DateDiff("w", wDate1, wDate2)
'wDate1の翌日以降からwDate2までの日曜日の数
Debug.Print "週 :" & DateDiff("ww", wDate1, wDate2)
Debug.Print "日[1] :" & DateDiff("y", wDate1, wDate2)
'"d"を指定したときと結果は同じです。
Debug.Print "日[2] :" & DateDiff("d", wDate1, wDate2)
Debug.Print "時間 :" & DateDiff("h", wDate1, wDate2)
Debug.Print "分 :" & DateDiff("n", wDate1, wDate2)
Debug.Print "秒 :" & DateDiff("s", wDate1, wDate2)
End Sub
DateSerial、TimeSerial関数