Как я могу сравнить два раза в 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 году. После выделения времени как доли дня его можно сравнить или использовать для визуализации прогресса в течение дня.