Сообщение согласно часу дня не функционирует VB.Net

У меня есть функциональность в моей системе, которая показывает сообщение согласно часу дня, но не функционирует

Dim msg As String
Dim horaActual As String
horaActual =  System.DateTime.Now.ToString("HH:mm")

If horaActual >= "24:00" and horaActual <= "12:00" Then
   msg = "Buenos Días"
ElseIf horaActual >= "12:01" and horaActual <= "19:00" Then
   msg = "Buenas Tardes"
ElseIf horaActual >= "19:01" and horaActual <= "23:59" Then
   msg = "Buenas Noches" End code
End If 

Я получаю час системы (9:16) и он был бы должен вводить в ней первый условие, но он не входит ни в одну.

1
задан 25.02.2016, 18:59
4 ответа

Решение состоит в том, что, как кажется, они 24:00 Hrs в действительности они 00:00 Hrs

1
ответ дан 24.11.2019, 14:48

Другой способ сравнивать даты, - с нею expresiГіn DateTime со знаком #, может быть asГ-:

    Dim msg As String
    Dim horaActual As String
    horaActual = System.DateTime.Now.ToString("HH:mm")

    If horaActual >= #12:00:00 PM# And horaActual <= #12:00:00 AM# Then
        msg = "Buenos Días"
    ElseIf horaActual >= #12:01:00 AM# And horaActual <= #7:00:00 PM# Then
        msg = "Buenas Tardes"
    ElseIf horaActual >= #7:01:00 PM# And horaActual <= #11:59:00 PM# Then
        msg = "Buenas Noches"
    End If

оставил Тебе задержание Вашего функционирования: Fechas

3
ответ дан 24.11.2019, 14:48
  • 1
    +1 Интересный, я солнце и # 237; чтобы сравнивать их со стоимостью в millisegundos, это подразумевало конвертировать string в millisegundos, чтобы реализовывать comparaci и # 243; n. = | – Jorgesys♦ 25.02.2016, 19:13

Проблема, которая общеизвестный состоит в том, что ты хочешь сравнить ранги используя string, когда ты был бы должен использовать номера

, ты Мог бы конвертировать час в военный формат (что ты услышишь страховку во многих фильмах), где они 12:00 hs - 1200. Для этого ты направляешь час и обращаешь ее в число.

Dim msg As String
Dim horaActual As Integer = Convert.ToInt32(DateTime.Now.ToString("HHmm"))

If horaActual >= 2400 and horaActual <= 1200 Then
   msg = "Buenos Días"
ElseIf horaActual >= 1201 and horaActual <= 1900 Then
   msg = "Buenas Tardes"
ElseIf horaActual >= 1901 and horaActual <= 2359 Then
   msg = "Buenas Noches" End code
End If 
1
ответ дан 24.11.2019, 14:48
  • 1
    Не функция и # 243;. останься, не вводя condici и # 243; n корреспондент, я изменил ему первый condici и # 243; n в Or вместо And, и если я ввожу, но верю в то, что не быть должным, и # 237; чтобы быть экспертом и # 237; для которого я требую правды? – Drago25 25.02.2016, 18:32
  • 2
    я верю в то, что condici и # 243; n будь плохой, так как например в этом мгновении я получаю себя от системы 1040 и в первый condici и # 243; n я сравниваю, что час был превосходящим 2400, тогда не как дела и # 237; в условие – Drago25 25.02.2016, 18:41

Вот, ответьте твой код меняясь msnиз-за Label1.Text = (чтобы это отвечать в легкой форме) и оно функционирует хорошо:

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


        Dim horaActual As String
        horaActual = System.DateTime.Now.ToString("HH:mm")

        If horaActual >= "24:00" And horaActual <= "12:00" Then
            Label1.Text = "Buenos Días"
        ElseIf horaActual >= "12:01" And horaActual <= "19:00" Then
            Label1.Text = "Buenas Tardes"
        ElseIf horaActual >= "19:01" And horaActual <= "23:59" Then
            Label1.Text = "Buenas Noches"
        End If

        Label2.Text = horaActual

    End Sub

Label2 - наверху и содержит настоящий час.

introducir la descripción de la imagen aquí

0
ответ дан 24.11.2019, 14:48