Как я могу сравнить два раза в VB.net

Я хочу сравнить два раза в VB.net:

У меня 1:42:21 вечера, и я хочу сравнить его с TimeOfDay в VB.net, как я могу это сделать?

6 ответов

Решение
New DateTime(1, 1, 1, 13, 42, 21) > TimeOfDay

Или вы можете приложить DateTime выражение в # приметы:

TimeOfDay > #1:42:21 PM#

Показать разницу во времени в часах, минутах и ​​секундах

Dim TimeEnd As DateTime = #5:00:00 PM#

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

    Dim span As System.TimeSpan = TimeEnd.TimeOfDay - DateTime.Now.TimeOfDay

    Label1.Text = span.Hours & "hr:" & span.Minutes & "min:" & span.Seconds & "sec"

End Sub

Вы определяете формат вашего времени ввода, а затем вызываете метод ToString() для вашего объекта vb.net, помещая тот же формат в.

Так, например, если ваш формат ввода h:mm:ss tt, как кажется, в вашем случае, один из методов будет делать:

Dim compareTime As String = "1:42:21 PM"

If compareTime = DateTime.Now.ToString("h:mm:ss tt") Then

   ' The times match

End If

Если вы хотите провести какое-то сравнение, вам следует использовать функцию DateTime.Parse(), чтобы преобразовать введенную вами дату в объект DateTime. Тогда вы можете просто использовать знаки> или <:

Dim myCompareTime As DateTime = DateTime.Parse("1:42:21 PM")

If myCompareTime.TimeOfDay > DateTime.Now.TimeOfDay Then

    ' Compare date is in the future!

End If
The following sample function can be used to compare time
Function comTime()
Dim t1 As Integer = DateTime.Now.TimeOfDay.Milliseconds
Dim t2 As Integer = DateTime.Now.AddHours(1).Millisecond
If (t1 > t2) Then
MessageBox.Show("t1>t2")
ElseIf (t1 = t2) Then
MessageBox.Show("t1=t2")
Else
MessageBox.Show("t2>t1")
End If
End Function

это то, что вы ищете?

Чтобы сравнить временную часть двух значений DateTime:

Dim TimeStart as DateTime = #1:42:21 PM#
Dim TimeEnd as DateTime = #2:00:00 PM#

If TimeStart.TimeOfDay < TimeEnd.TimeOfDay Then 
    Console.WriteLine("TimeStart is before TimeEnd")
End If
      Dim MyDate As DateTime = Convert.ToDateTime(MyDateAsString)
Dim MyFractionOfDay As Double = MyDate.TimeOfDay.TotalDays

Вопрос по-прежнему актуален в 2022 году. После выделения времени как доли дня его можно сравнить или использовать для визуализации прогресса в течение дня.

Другие вопросы по тегам