#12_3 時間を操作する関数
ちょっとマニアックな日付/時刻に関する関数
日付/時刻に関する基本的な関数は前回までの情報で十分です。今回は結構マニアックだけど知っておいて損はしない関数を紹介したいと思います。
午前0時から経過した秒数
まずTimer関数を紹介します。こちらは午前0時から現在の時刻まで経過した秒数を返す関数です。
2つの日付の時間間隔を返す関数
次に紹介するのが、2つの指定した日付の時間間隔を取得するDateDiff関数です。これは2つの技付の間の日数や、週の数などをカウントすることができ、意外と応用が利きます。
DateDiff(時間間隔, 日時1, 日時2,〔, 開始曜日〔, 開始週〕〕)
第1引数の「時間間隔」には下の一覧に示した日時同士の間隔を計算するための時間単位を指定します。
第2、第3引数にはそれぞれ間隔を計算する2つの日時を指定しますが、日時1よりも前の日時を2に指定すると、関数は負の値を返します。
開始曜日はWeekdayName関数の時と同じです。省略すると既定値の日曜が指定されます。
最後の引数の開始週ですが、これは第1週がいつかを既定する定数です。下の表にその一覧を示しますが、省略した場合には1月1日を含む週が第1週になります。
時間間隔 | 対応する意味 |
---|---|
yyyy | 年 |
q | 4半期 |
m | 月 |
y | 年間通算日 |
d | 日 |
w | 週日 |
ww | 週 |
h | 時 |
n | 分 |
s | 秒 |
定数 | 値 | 意味 |
---|---|---|
vbUseSystem | 0 | NLS APIの設定値を使用 |
vbFirstJan1 | 1 | 1/1を含む週を年度の第1週とする。(既定値) |
vbFirstFourDays | 2 | 1週間の中で4日間が新年度に含まれる週を第1週とする。 |
vbFirstFullWeek | 3 | 7日間すべてが新年度に含まれる最初の週を第1週とする。 |
時間間隔を加算した日付/時刻を返す
ある日付や時刻に、指定した時間間隔を加算した日付や時刻を取得することのできるDateAdd関数を紹介します。
DateAdd(時間間隔, 加算時間, 基準日時)
時間間隔には上に示した時間間隔の設定値をそのまま使うことができます。
加算時間に関しては、負の値を指定することもでき、未来の日時を取得する場合には正の数、過去の日時を指定する場合には負の数を指定することができます。
第3引数の基準日時に関しては、時間の感覚を加算する元の日付や時刻を指定できます。
ちょっと複雑でしたが、次にDateAdd関数の例を示しておきます。
日付から指定した部分を返す
この章の最後に紹介するのはDatePart関数です。これは、日付の日付部分のみ、または時刻部分のみなど、指定した部分を取得するための関数です。
その構文を次に示しておきます。
DatePart(時間間隔, 日付〔, 開始位置〔, 開始週〕〕)
関数内に含まれる引数の「時間間隔」や「開始週」については上記DateDiff関数やDateAdd関数を参考にしてください。
最後にDatePart関数の例を示しておきます。