0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

VBScript用の日付フォーマット関数

Last updated at Posted at 2021-12-13

VBScript には、VBA にあるような Format関数がないので、簡易的な日付フォーマット関数をつくってみる。

Function DateFormat(ByVal date_value, ByVal fmt)

'// 日付を fmt 形式の文字列で返す
'// "yyyy"は西暦4桁、"yy"は西暦下2桁、"y"は和暦、"0y"は和暦0付き、gは元号(明治以前は西暦)
'// "m"、"d"、"h"、"n"、"s" は 月、日、時、分、秒(二文字の場合は0つき2桁)
'// "aaa"は曜日、"a"はその略字

	Dim yyyy, yy, y, g, mm, m, dd, d, hh, h, nn, n, ss, s, aaa, a

	yyyy = Year(date_value)
	m = Month(date_value)
	d = Day(date_value)
	h = Hour(date_value)
	n = Minute(date_value)
	s = Second(date_value)
	aaa = WeekdayName(Weekday(date_value))

	yy = Right(yyyy, 2)
	mm = Right("0" & m, 2)
	dd = Right("0" & d, 2)
	hh = Right("0" & h, 2)
	nn = Right("0" & n, 2)
	ss = Right("0" & s, 2)
	a = Left(aaa, 1)

	fmt = Replace(fmt, "yyyy", yyyy)
	fmt = Replace(fmt, "yy", yy)

	If date_value < #1868/9/4# Then g = "": y = yyyy
	If date_value >= #1868/9/4# Then g = "明治": y = yyyy - 1867
	If date_value >= #1912/7/31# Then g = "大正": y = yyyy - 1911
	If date_value >= #1926/12/27# Then g = "昭和": y = yyyy - 1925
	If date_value >= #1989/1/8# Then g = "平成": y = yyyy - 1988
	If date_value >= #2019/5/1# Then g = "令和": y = yyyy - 2018

	fmt = Replace(fmt, "0y", g & Right("0" & y, 2))
	If y = 1 Then y = "元"
	fmt = Replace(fmt, "y", g & y)

	fmt = Replace(fmt, "mm", mm)
	fmt = Replace(fmt, "dd", dd)
	fmt = Replace(fmt, "hh", hh)
	fmt = Replace(fmt, "nn", nn)
	fmt = Replace(fmt, "ss", ss)
	fmt = Replace(fmt, "aaa", aaa)

	fmt = Replace(fmt, "m", m)
	fmt = Replace(fmt, "d", d)
	fmt = Replace(fmt, "h", h)
	fmt = Replace(fmt, "n", n)
	fmt = Replace(fmt, "s", s)
	fmt = Replace(fmt, "a", a)

	DateFormat = fmt

End Function

テスト結果:

Msgbox DateFormat(Now, "yyyy-mm-dd_hhnnss")
'⇒ 今日の「年-月-日_時分秒」

Msgbox DateFormat(#1989/1/8 9:45:12#, "y年m月d日(a)hh時nn分ss秒")
'⇒ 平成元年1月8日(日)09時45分12秒
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?