[VBScript] 現在時刻が指定した時間内かどうかを判断する
現在時刻が想定時刻の間かどうかを判定するVBScriptを考えてました。
時間内の時だけ処理をさせたい場合の例です。
‘現在時刻が指定した時刻範囲内に収まっているかを確認する
Option Explicit
Dim fromTime, toTime
Dim currTime
‘現在時刻
currTime = Time
‘時刻条件From
fromTime = TimeValue(“09:00”) ‘秒まで指定する場合は09:00:00
‘時刻条件To
toTime = TimeValue(“09:30”)
If fromTime <= currTime And currTime <= toTime Then
'時間内の場合はOK ココに実行したい処理を書く
WScript.Echo "OK"
Else
'時間外の場合はNG
WScript.Echo "NG"
End If
[/vb]
これは、時刻を文字列の形式で指定しています。
また、コマンドの引数として指定したい場合は、HH:MMの形式だとコロンが問題になるので、時刻の指定方法を変更します。
[vb]
Dim objParam
Set objParam = WScript.Arguments
Dim fromTime, toTime, currTime
Dim arg1, arg2
If (objParam.Count >= 2) Then
arg1 = objParam(0)
arg2 = objParam(1)
if (Len(arg1) = 6 And Len(arg2) = 6) And IsNumeric(arg1) And IsNumeric(arg2) Then
currTime = Time
fromTime = TimeSerial(Mid(arg1, 1, 2), Mid(arg1, 3, 2), Mid(arg1, 5, 2))
toTime = TimeSerial(Mid(arg2, 1, 2), Mid(arg2, 3, 2), Mid(arg2, 5, 2))
Else
WScript.Echo “引数指定が間違っています。時刻は HHMMSS の数値で指定して下さい。”
WScript.Quit
End If
If fromTime <= currTime And currTime <= toTime Then '時間内なので以降の処理を実行する Else '時間外なので処理は中断する。 WScript.Quit End If End If ... ココから実行したい処理 [/vb] このように、引数はHHMMSSの形式で指定をさせます。 この例では、スクリプトの第1引数に条件開始時刻(HHMMSS)、第2引数に条件終了時刻(HHMMSS)を指定させます。 条件を満たした時のみ、このロジック以降の処理が実行される形です。 時刻の書式をもう少し厳密に見たほうがいいかもしれません。この例では6桁の数値なら何でもOKになっています。
== ランキングに参加しています。ぜひクリックお願いします ==
[C#] DataGridViewのスクロール位置を設定する時の注意 [Oracle] 16進数表示する