#author("2020-05-10T10:15:14+09:00;2015-03-20T22:50:40+09:00","","") #navi(../) * VBScriptで2つの日付の引き算(時間間隔)をする方法・DateDiff [#i5dec69f] DateDiff関数を利用すると、引数に与えた2つの日付より時間間隔を求めることができます。~ 以下にDateDiff関数を利用したサンプルコードと実行例を記します。~ (一部、WSHのヘルプファイルscript56.chmから抜粋) #contents #htmlinsertpcsp(win-top.html,win-sp.html) * 関連記事 [#o1fb3363] -[[年月日時分秒のパートを抜き出す・DatePart>WSH/年月日時分秒のパートを抜き出す・DatePart]] -[[日付けの加算や減算を行う・DateAdd>WSH/日付けの加算や減算を行う・DateAdd]] -[[指定した日付の曜日を取得する方法・WeekDay>WSH/指定した日付の曜日を取得する方法・WeekDay]] * DateDiffの引数 [#k1d918f8] DateDiff関数の引数は以下の通りです。 DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]]) - interval(省略不可)~ date1とdate2の時間間隔の単位を以下の文字列で指定します。 |''intervalに設定する文字列''|''設定文字列の説明''| |yyyy|年| |q|四半期| |m|月| |y|年間通算日| |d|日| |w|週日| |ww|週| |h|時| |n|分| |s|秒| - date1, date2(省略不可)~ 間隔を算出する2つの日付式を指定する。 - firstdayofweek(省略可能)~ 週の始まりの曜日を表す定数を指定する。~ 省略した場合は日曜日はじまりになります。 |''定数''|''数値''|''説明''| |vbUseSystemDayOfWeek|0|各国語対応 (NLS) API の設定値を使用します。| |vbSunday|1|日曜日 ''(既定値)''| |vbMonday|2|月曜日| |vbTuesday|3|火曜日| |vbWednesday|4|水曜日| |vbThursday|5|木曜日| |vbFriday|6|金曜日| |vbSaturday|7|土曜日| - firstweekofyear(省略可能)~ 年度の第1週を表す定数を指定する。~ 省略すると、1月1日を含む週が第1週として指定される。 |''定数''|''数値''|''説明''| |vbUseSystem|0|各国語対応 (NLS) API の設定値を使用します。| |vbFirstJan1|1|''(既定値)'' 1 月 1 日を含む週を年度の第 1 週として扱います。| |vbFirstFourDays|2|7 日のうち少なくとも 4 日が新年度に含まれる週を年度の第 1 週として扱います。| |vbFirstFullWeek|3|全体が新年度に含まれる最初の週を年度の第 1 週として扱います。| * DateDiffのサンプルコードおよび実行例 [#y86b3a05] -サンプルコード~ DateDiffのサンプルコードを以下に記します。~ #ref(DateDiff.zip) ファイル名: DateDiff.vbs 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が返却されるので注意してください。~ いくつか動作確認をしてから使用することをおすすめします。 #htmlinsertpcsp(win-btm.html,win-sp.html)