このエントリーをはてなブックマークに追加


VBScriptで2つの日付の引き算(時間間隔)をする方法・DateDiff

DateDiff関数を利用すると、引数に与えた2つの日付より時間間隔を求めることができます。
以下にDateDiff関数を利用したサンプルコードと実行例を記します。
(一部、WSHのヘルプファイルscript56.chmから抜粋)


関連記事

DateDiffの引数

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(省略可能)
    週の始まりの曜日を表す定数を指定する。
    省略した場合は日曜日はじまりになります。
    定数数値説明
    vbUseSystemDayOfWeek0各国語対応 (NLS) API の設定値を使用します。
    vbSunday1日曜日 (既定値)
    vbMonday2月曜日
    vbTuesday3火曜日
    vbWednesday4水曜日
    vbThursday5木曜日
    vbFriday6金曜日
    vbSaturday7土曜日
  • firstweekofyear(省略可能)
    年度の第1週を表す定数を指定する。
    省略すると、1月1日を含む週が第1週として指定される。
    定数数値説明
    vbUseSystem0各国語対応 (NLS) API の設定値を使用します。
    vbFirstJan11(既定値) 1 月 1 日を含む週を年度の第 1 週として扱います。
    vbFirstFourDays27 日のうち少なくとも 4 日が新年度に含まれる週を年度の第 1 週として扱います。
    vbFirstFullWeek3全体が新年度に含まれる最初の週を年度の第 1 週として扱います。

DateDiffのサンプルコードおよび実行例

  • サンプルコード
    DateDiffのサンプルコードを以下に記します。
    ファイル名: 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が返却されるので注意してください。
いくつか動作確認をしてから使用することをおすすめします。



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-05-10 (日) 10:15:48