DateDiff関数を利用すると、引数に与えた2つの日付より時間間隔を求めることができます。
以下にDateDiff関数を利用したサンプルコードと実行例を記します。
(一部、WSHのヘルプファイルscript56.chmから抜粋)
DateDiff関数の引数は以下の通りです。
DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])
intervalに設定する文字列 | 設定文字列の説明 |
yyyy | 年 |
q | 四半期 |
m | 月 |
y | 年間通算日 |
d | 日 |
w | 週日 |
ww | 週 |
h | 時 |
n | 分 |
s | 秒 |
定数 | 数値 | 説明 |
vbUseSystemDayOfWeek | 0 | 各国語対応 (NLS) API の設定値を使用します。 |
vbSunday | 1 | 日曜日 (既定値) |
vbMonday | 2 | 月曜日 |
vbTuesday | 3 | 火曜日 |
vbWednesday | 4 | 水曜日 |
vbThursday | 5 | 木曜日 |
vbFriday | 6 | 金曜日 |
vbSaturday | 7 | 土曜日 |
定数 | 数値 | 説明 |
vbUseSystem | 0 | 各国語対応 (NLS) API の設定値を使用します。 |
vbFirstJan1 | 1 | (既定値) 1 月 1 日を含む週を年度の第 1 週として扱います。 |
vbFirstFourDays | 2 | 7 日のうち少なくとも 4 日が新年度に含まれる週を年度の第 1 週として扱います。 |
vbFirstFullWeek | 3 | 全体が新年度に含まれる最初の週を年度の第 1 週として扱います。 |
#ref(): File not found: "DateDiff.zip" at page "WSH/2つの日付の引き算(時間間隔)をする方法・DateDiff"
WScript.Echo "No.1 interval = m, date1, date2 = 2013/1/1, 2013/12/31" WScript.Echo DateDiff("m", "2013/1/1", "2013/12/31") WScript.Echo "No.2 interval = d, date1, date2 = 2013/1/1, 2013/12/31" WScript.Echo DateDiff("d", "2013/1/1", "2013/12/31") WScript.Echo "No.3 interval = w, date1, date2 = 2013/1/1, 2013/12/31" WScript.Echo DateDiff("w", "2013/1/1", "2013/12/31") WScript.Echo "No.4 interval = yyyy, date1, date2 = 2012/12/31, 2013/1/1" WScript.Echo DateDiff("yyyy", "2012/12/31", "2013/1/1") WScript.Echo "No.5 interval = yyyy, date1, date2 = 2013/1/1, 2013/12/31" WScript.Echo DateDiff("yyyy", "2013/1/1", "2013/12/31")
C:\Users\sakura\Desktop>cscript DateDiff.vbs Microsoft (R) Windows Script Host Version 5.8 Copyright (C) Microsoft Corporation 1996-2001. All rights reserved. No.1 interval = m, date1, date2 = 2013/1/1, 2013/12/31 11 No.2 interval = d, date1, date2 = 2013/1/1, 2013/12/31 364 No.3 interval = w, date1, date2 = 2013/1/1, 2013/12/31 52 No.4 interval = yyyy, date1, date2 = 2012/12/31, 2013/1/1 1 No.5 interval = yyyy, date1, date2 = 2013/1/1, 2013/12/31 0
No.4に注目すると日は一日しか経過していませんが、年をまたいでいます。
このような場合は1が返却されるので注意してください。
いくつか動作確認をしてから使用することをおすすめします。