DateDiff 関数の使い方
【書式】
result = DateDiff ( interval, date1, date2, [ firstdayofweek, firstweekofyear ] )
引数・戻り値
- interval ・・・ 取得する日付間の間隔の「時刻・時間の単位」を表す文字列式を指定します(「時刻・時間単位の設定値表」を参照 )。
- date1,date2 ・・・ 比較する日付・時刻を指定します(内部処理形式 Date のバリアント型の値、もしくはリテラル文字列)。
- firstdayofweek ・・・ 週の始まりの曜日を表す定数を指定します。省略すると日曜日を指定したものとみなされます(「週の始まりの曜日を示す定数」を参照 )。
- firstweekofyear ・・・ 年度の第 1 週を表す定数を指定します。省略すると、1 月 1 日を含む週が第 1 週とみなされます(「年度の始まりを示す定数」を参照 )。
- result ・・・ 2つの日付・時間( date1 と date2 )の間隔を表す数値(Long 型)。
時刻・時間単位の設定値表(interval に指定する値)
値 | 内容 | 備考 |
yyyy | 年 | |
q | 四半期 | |
m | 月 | |
y | 年間通算日 | d を指定した場合と同じ |
d | 日 | |
w | 週日 | 週間数( date1 の曜日から date2 までのその曜日の数。ただし date1 自体は数に含めない)。 |
ww | 週 | 週間数( date1 から date2 までの日曜日の数。ただし date1 が日曜日の場合、date1 は数に含めない)。 |
h | 時 | |
n | 分 | |
s | 秒 |
週の始まりの曜日を示す定数(firstdayofweek に指定する値)
値 | 定数 | 内容 |
0 | vbUseSystem | NLS(システムの各国対応)APIの設定値を使用 |
1 | vbSunday | 日曜日(規定値) |
2 | vbMonday | 月曜日 |
3 | vbTuesday | 火曜日 |
4 | vbWednesday | 水曜日 |
5 | vbThursday | 木曜日 |
6 | vbFriday | 金曜日 |
7 | vbSaturday | 土曜日 |
年度の始まりを示す定数(firstweekofyear に指定する値)
値 | 定数 | 内容 |
0 | vbUseSystem | NLS(システムの各国対応)APIの設定値を使用 |
1 | vbFirstJan1 | 1月1日を含む週を年度の第1週とする(規定値) |
2 | vbFirstFourDays | 7日のうち少なくとも4日が新年度に含まれる週を年度の第1週とする |
3 | vbFirstFullWeek | 全体が新年度に含まれる最初の週を年度の第1週とする |
DateDiff 関数の使用例
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
Sub Sample_DateDiff() Dim myDate1 As Date, myDate2 As Date Dim msg myDate1 = #4/20/2005 7:08:21 PM# myDate2 = Now msg = "myDate1 :" & myDate1 & Chr(13) & _ "myDate2 :" & myDate2 & Chr(13) & _ "yyyy(年) :" & DateDiff("yyyy", myDate1, myDate2) & Chr(13) & _ "m(月) :" & DateDiff("m", myDate1, myDate2) & Chr(13) & _ "d(日) :" & DateDiff("d", myDate1, myDate2) & Chr(13) & _ "ww(週) :" & DateDiff("ww", myDate1, myDate2) & Chr(13) & _ "y(年日) :" & DateDiff("y", myDate1, myDate2) & Chr(13) & _ "w(週日) :" & DateDiff("w", myDate1, myDate2) & Chr(13) & _ "q(四半期):" & DateDiff("q", myDate1, myDate2) & Chr(13) & _ "h(時) :" & DateDiff("h", myDate1, myDate2) & Chr(13) & _ "n(分) :" & DateDiff("n", myDate1, myDate2) & Chr(13) & _ "s(秒) :" & DateDiff("s", myDate1, myDate2) Debug.Print msg End Sub |