現在の時刻を取得し、現在の時刻がどのタイム ブラケット (timespan 配列から) に該当するかを判断するプライベート サブルーチンを作成しました。私がテストしている 10 個のタイム ブラケットがあることを考えると、コードは反復的であり、配列の整数インデックスと結果の整数のみが各 if ステートメント間で変化します。
If DateTime.Now.TimeOfDay >= tmeToday(0) AndAlso DateTime.Now.TimeOfDay <= tmeToday(1) Then
intPeriodFrid = 0 'ext morning; 8am - 9am
intNextBell = 1
ElseIf DateTime.Now.TimeOfDay >= tmeToday(1) AndAlso DateTime.Now.TimeOfDay <= tmeToday(2) Then
intPeriodFrid = 1 'morning break; 9am - 9:05am
intNextBell = 2
...後でばかげた量の繰り返し
ElseIf DateTime.Now.TimeOfDay >= tmeToday(10) AndAlso DateTime.Now.TimeOfDay <= tmeToday(11) Then
intPeriodFrid = 10 'ext afternoon; 3:10pm - 4:10pm
intNextBell = 11
End If
それから、私はおそらく次のようにできると思いました:
For value As Integer = 0 To 10
If DateTime.Now.TimeOfDay >= tmeToday(value) AndAlso DateTime.Now.TimeOfDay <= tmeToday(value + 1) Then
intPeriodFrid = value
intNextBell = (value + 1)
Exit For
End If
Next
これは私の初めてのループの使用です (私は VB.NET ベースのコースを開始して 10 週間になります)、解決策としてこれに自信がありません。うまくいきますか? これを実装する場合に注意する必要がある弱点/問題はありますか?