時間の範囲判定をする→開始(FROM)~終了(TO)の日付と時間、比較対象の日付と時間をセットして範囲に入っているかどうかを判定する
<分類:判定>
<使用例:対象範囲(開始)の日付と時間、対象日付と時間、対象範囲(終了)の日付と時間(13:00:00)をセットして、範囲内の場合は内、範囲外の場合は外と判定する>
<具体例:対象範囲(開始)の日付(2019/8/16)時間(02:00:00)≦対象の日付(2019/8/16)時間(01:59:59)≦対象範囲(終了)の日付(2019/8/16)時間(13:00:00)は成立しないので範囲外と判定>
<具体例:対象範囲(開始)の日付(2019/8/16)時間(02:00:00)≦対象の日付(2019/8/16)時間(02:00:00)≦対象範囲(終了)の日付(2019/8/16)時間(13:00:00)が成立するので範囲内と判定>
<具体例:対象範囲(開始)の日付(2019/8/16)時間(02:00:00)≦対象の日付(2019/8/16)時間(13:00:00)≦対象範囲(終了)の日付(2019/8/16)時間(13:00:00)が成立するので範囲内と判定>
<具体例:対象範囲(開始)の日付(2019/8/16)時間(02:00:00)≦対象の日付(2019/8/16)時間(13:00:01)≦対象範囲(終了)の日付(2019/8/16)時間(13:00:00)は成立しないので範囲外と判定>
<プログラム例>
Sub 使用例() Dim fdate As Date Dim ftime As Date Dim gdate As Date Dim gtime As Date Dim tdate As Date Dim ttime As Date Dim rtn1 As String fdate = "2019/8/16" ftime = "02:00:00" gdate = "2019/8/16" gtime = "01:59:59" tdate = "2019/8/16" ttime = "13:00:00" rtn1 = 時間範囲判定(fdate, ftime, gdate, gtime, tdate, ttime) MsgBox (gdate & " (" & gtime & ") は、" & Chr(13) & fdate & " (" & ftime & ") ~ " & tdate & " (" & ttime & ") の範囲" & rtn1 & "です") fdate = "2019/8/16" ftime = "02:00:00" gdate = "2019/8/16" gtime = "02:00:00" tdate = "2019/8/16" ttime = "13:00:00" rtn1 = 時間範囲判定(fdate, ftime, gdate, gtime, tdate, ttime) MsgBox (gdate & " (" & gtime & ") は、" & Chr(13) & fdate & " (" & ftime & ") ~ " & tdate & " (" & ttime & ") の範囲" & rtn1 & "です") fdate = "2019/8/16" ftime = "02:00:00" gdate = "2019/8/16" gtime = "13:00:00" tdate = "2019/8/16" ttime = "13:00:00" rtn1 = 時間範囲判定(fdate, ftime, gdate, gtime, tdate, ttime) MsgBox (gdate & " (" & gtime & ") は、" & Chr(13) & fdate & " (" & ftime & ") ~ " & tdate & " (" & ttime & ") の範囲" & rtn1 & "です") fdate = "2019/8/16" ftime = "02:00:00" gdate = "2019/8/16" gtime = "13:00:01" tdate = "2019/8/16" ttime = "13:00:00" rtn1 = 時間範囲判定(fdate, ftime, gdate, gtime, tdate, ttime) MsgBox (gdate & " (" & gtime & ") は、" & Chr(13) & fdate & " (" & ftime & ") ~ " & tdate & " (" & ttime & ") の範囲" & rtn1 & "です") End Sub Function 時間範囲判定(fdate As Date, ftime As Date, gdate As Date, gtime As Date, tdate As Date, ttime As Date) Dim fr As String Dim tr As String Dim ftr As String If DateDiff("d", fdate, gdate) > 0 Then fr = "大" End If If DateDiff("d", fdate, gdate) = 0 Then If DateDiff("s", ftime, gtime) >= 0 Then fr = "大" Else fr = "小" End If End If If DateDiff("d", fdate, gdate) < 0 Then fr = "小" End If If DateDiff("d", gdate, tdate) > 0 Then tr = "大" End If If DateDiff("d", gdate, tdate) = 0 Then If DateDiff("s", gtime, ttime) >= 0 Then tr = "大" Else tr = "小" End If End If If DateDiff("d", gdate, tdate) < 0 Then tr = "小" End If ftr = fr & tr Select Case ftr Case "大大" 時間範囲判定 = "内" Case Else 時間範囲判定 = "外" End Select End Function
時間がジャストかどうかを調べる(30分もジャストで判定するバージョン)
<分類:判定>
<使用例:時間が何時ジャストであるか判定する>
<00:00:00 → 判定結果:ジャスト>
<00:00:01 → 判定結果:ジャストではない>
<23:00:00 → 判定結果:ジャスト>
<23:30:00 → 判定結果:ジャスト>
<23:00:30 → 判定結果:ジャストではない>
<プログラム例>
Sub 使用例() Dim t As String Dim s As String t = "00:00:00" s = 時間ジャスト調査00分と30分(t) If s = "*" Then MsgBox (t & "はジャストです") Else MsgBox (t & "はジャストではありません") End If t = "00:00:01" s = 時間ジャスト調査00分と30分(t) If s = "*" Then MsgBox (t & "はジャストです") Else MsgBox (t & "はジャストではありません") End If t = "23:00:00" s = 時間ジャスト調査00分と30分(t) If s = "*" Then MsgBox (t & "はジャストです") Else MsgBox (t & "はジャストではありません") End If t = "23:30:00" s = 時間ジャスト調査00分と30分(t) If s = "*" Then MsgBox (t & "はジャストです") Else MsgBox (t & "はジャストではありません") End If t = "23:00:30" s = 時間ジャスト調査00分と30分(t) If s = "*" Then MsgBox (t & "はジャストです") Else MsgBox (t & "はジャストではありません") End If End Sub Function 時間ジャスト調査00分と30分(p1 As String) Dim s As String s = 共通_cov_time_t9(p1) Select Case Mid(s, 4, 4) Case "0000" 時間ジャスト調査00分と30分 = "*" Case "3000" 時間ジャスト調査00分と30分 = "*" Case Else 時間ジャスト調査00分と30分 = "" End Select End Function Function 共通_cov_time_t9(p1 As String) As String 共通_cov_time_t9 = "T" & CStr((Format(p1, "hhnnss"))) End Function
時間がジャストかどうかを調べる
<分類:判定>
<使用例:時間が何時ジャストであるか判定する>
<00:00:00 → 判定結果:ジャスト>
<00:00:01 → 判定結果:ジャストではない>
<23:00:00 → 判定結果:ジャスト>
<23:30:00 → 判定結果:ジャストではない>
<23:00:30 → 判定結果:ジャストではない>
<プログラム例>
Sub 使用例() Dim t As String Dim s As String t = "00:00:00" s = 時間ジャスト調査(t) If s = "*" Then MsgBox (t & "はジャストです") Else MsgBox (t & "はジャストではありません") End If t = "00:00:01" s = 時間ジャスト調査(t) If s = "*" Then MsgBox (t & "はジャストです") Else MsgBox (t & "はジャストではありません") End If t = "23:00:00" s = 時間ジャスト調査(t) If s = "*" Then MsgBox (t & "はジャストです") Else MsgBox (t & "はジャストではありません") End If t = "23:30:00" s = 時間ジャスト調査(t) If s = "*" Then MsgBox (t & "はジャストです") Else MsgBox (t & "はジャストではありません") End If t = "23:00:30" s = 時間ジャスト調査(t) If s = "*" Then MsgBox (t & "はジャストです") Else MsgBox (t & "はジャストではありません") End If End Sub Function 時間ジャスト調査(p1 As String) Dim s As String s = 共通_cov_time_t9(p1) Select Case Mid(s, 4, 4) Case "0000" 時間ジャスト調査 = "*" Case else 時間ジャスト調査 = "" End Select End Function Function 共通_cov_time_t9(p1 As String) As String 共通_cov_time_t9 = "T" & CStr((Format(p1, "hhnnss"))) End Function