Пользователь вводит время начала и окончания своего бронирования через datetimepickers. Я хочу быть в состоянии убедиться, что бронирование находится в открытые времена зала. Я попытался это:сравнение времени бронирования и времени открытия
MsgBox("start time: " & start_time.value & " End time:" & end_time.value & "")
If DateTime.Parse(Datetimepicker1.text).DayOfWeek = "1 " Then
If start_time.value < "08:00:00" Or end_time.value > "22:30:00" Then
errors.Enqueue("The booking slot must be within the open hours")
End If
ElseIf DateTime.Parse(Datetimepicker1.text).DayOfWeek = "2" Then
If start_time.value < "08:00:00" Or end_time.value > "22:30:00" Then
errors.Enqueue("The booking slot must be within the open hours")
End If
ElseIf DateTime.Parse(Datetimepicker1.text).DayOfWeek = "3" Then
If start_time.value < "08:00:00" Or end_time.value > "22:30:00" Then
errors.Enqueue("The booking slot must be within the open hours")
End If
ElseIf DateTime.Parse(Datetimepicker1.text).DayOfWeek = "4" Then
If start_time.value < "08:00:00" Or end_time.value > "22:30:00" Then
errors.Enqueue("The booking slot must be within the open hours")
End If
ElseIf DateTime.Parse(Datetimepicker1.text).DayOfWeek = "5" Then
If start_time.value < "08:00:00" Then
errors.Enqueue("The booking slot must be within the open hours")
End If
ElseIf DateTime.Parse(Datetimepicker1.text).DayOfWeek = "6" Then
If start_time.value < "10:00:00" Then
errors.Enqueue("The booking slot must be within the open hours")
End If
ElseIf DateTime.Parse(Datetimepicker1.text).DayOfWeek = "7" Then
If start_time.value < "10:00:00" Then
errors.Enqueue("The booking slot must be within the open hours")
End If
End If
Он работает в пятницу, субботу и воскресенье, но не для других дней недели, что заставляет меня думать, что что-то делать с оператором ИЛИ в те дни, но я вполне могу понять, почему.
Какие значения являются «start_time» и «end_time»? Также вы можете просто использовать 'DateTimePicker1.Value.DayOfWeek' вместо вызова метода' .Parse'. Я бы рекомендовал использовать оператор select-case для этого сценария, а не использовать if-elseif; значительно повышают удобочитаемость. –
Я уверен, что параметр Strict не включен, потому что 'If start_time.value <" 10:00:00 "' сравнивает тип DateTime с строкой. Вместо использования DateTime.Parse, чтобы получить Dayof Week, 'Datetimepicker1.Value' даст вам это прямо. Наконец, все это может быть упрощено с помощью Else или Case Statement – Plutonix
Готов поспорить, что это фактически значение времени, но именно поэтому я и спросил в своем комментарии. –