怠日記

写真・金魚・昆虫・プログラミングの趣味を語るサイトです。似たようなことをnoteにも書いたり書いてなかったり。

VBScript - 日付や時刻の一部分を取得する | DatePart関数

日付から指定された部分を取得するには DatePart 関数を使う。

DatePart( Interval, Date, [FirstDayOfWeek = vbSunday], [FirstWeekOfYear = vbFirstJan1] )
  • Interval: 取得する日付や時刻の部分を示す文字列

  • Date: 日付

  • FirstDayOfWeek: 週の始まりの曜日
    指定可能な値は Weekday 関数と同じ。
    省略時は日曜が週の始まりとなる。

  • FirstWeekOfYear: 年度の第1週を表す値
    省略時は1月1日を含む週が第1週となる。

 

Interval には以下のいずれかを指定する。

  • yyyy : 年
  • q : 四半期
  • m : 月
  • y : 年間通算日
  • d : 日
  • w : 週日
  • ww : 週
  • h : 時
  • n : 分
  • s : 秒

 

FirstWeekOfYear には以下のいずれかを指定する。

  • vbUseSystem(0) : 各国語対応 (NLS) API の設定値を使用
  • vbFirstJan1(1) : 1月1日が含まれる週から開始(既定値)
  • vbFirstFourDays(2) : 新年で少なくとも4日ある最初の週から開始
  • vbFirstFullWeek(3) : 1週間全体が含まれる最初の週から開始

 

以下のコードは、日付から年/月/日をそれぞれを取得する。

Dim dtm
dtm = #2023-01-02 03:04:05#

WScript.Echo DatePart("yyyy", dtm)
WScript.Echo DatePart("m", dtm)
WScript.Echo DatePart("d", dtm)

 

下表は Interval の指定値によって戻り値がどう変わるかを確認した結果である。

Interval  意味        #2023-01-02 03:04:05# の場合  #2023-12-31 23:58:59# の場合
--------  ----------  ----------------------------  ----------------------------
yyyy      年          2023                          2023
q         四半期      1                             4
m         月          1                             12
y         年間通算日  2                             365
d         日          2                             31
w         週日        2                             1
ww        週          1                             53
h         時          3                             23
n         分          4                             58
s         秒          5                             59