如何将当前时间与格式示例“07:00”
中的时间进行比较我想查看当前时间以及当前时间间隔为07:00 - 07:45,以便在文本框中显示消息。
我目前的工作
Public Class Form1
Dim curtime As String
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
tmrNow.Enabled = True
If curtime < "07:00" And curtime > "07:45" Then
lblPeriod.Text = "Time is in range "
End If
End Sub
Private Sub tmrNow_Tick(sender As Object, e As EventArgs) Handles tmrNow.Tick
txtNow.Text = DateAndTime.Now.ToString("hh:mm")
curtime = txtNow.Text
End Sub
End Class
答案 0 :(得分:1)
DateTime
是.NET中的一个实际类型,专门用于评估时间和日期。另外,您在Form加载中设置lblPeriod
,只发生一次,可能在Timer关闭之前设置当前日期时间变量。
Private curDT as DateTime
Private Sub tmrNow_Tick(....
curDt = DateTime.Now
txtNow.Text = curDt.ToString("hh:mm")
' evaluate the time:
If curDt.Hour = 7 AndAlso (curDt.Minute >= 0 And curDt.Minute <= 45) Then
lblPeriod.Text = "Time is in range "
End If
End Sub
Strings
是不同的类型,不适合进行数学运算或DateTime
比较。代码如下:
If curtime < "07:00" And curtime > "07:45" Then
将失败,因为"07:00"
不是时间值 - 它是文本(字符串),它只是时间格式。由于模式的原因,你的大脑将其解释为时间,但对于计算机来说它没有“Ziggy”或“Apple”那么重要。这就是为什么我们使用DateTime
变量及其提供的属性来检查/发送时间(小时,分钟,秒等)或日期(月,日,年)。
类似地,ToString("hh:mm")
将我们的DateTime
变量转换为模式中的字符串,以便用户的大脑(希望)可以解释正在发生的事情。