【问题标题】:Compare current time with time in textbox将当前时间与文本框中的时间进行比较
【发布时间】:2014-09-01 16:24:25
【问题描述】:

如何将我当前的时间与格式示例“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

【问题讨论】:

  • 您不是在比较时间/日期,而是在比较字符串 (Dim curtime As String)。将 curtime 声明为 DateTime 并直接在 Tick 事件中设置它,而不是通过文本框跳跃并转换为字符串。此外,表单加载只发生一次,因此检查将在计时器关闭之前发生
  • @Plutonix 你的意思不是这样的 [link]pokit.org/get/?d1dc08f3889d9c0e51cd88b898f11921.jpg 。通过将时间转换为字符串而不是比较,我做错了吗?我将 curtime 变量从字符串固定为日期时间。如何修复这个 tostring ?

标签: vb.net forms time timer basic


【解决方案1】:

DateTime 是 .NET 中的一个实际类型,专门用于评估时间和日期。此外,您在表单加载中设置 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 变量转换为模式中的字符串,以便用户的大脑(希望)能够解释正在发生的事情。

【讨论】:

  • 哇原来如此解释。 @Plutonix 非常感谢。在尝试实现 DateTime 功能几周后,我现在设法实现了它。祝你有美好的一天
  • 还有一件事,我如何检查 7:45 和 8:30 之前的时间间隔。非常感谢
  • 我不知道您所说的间隔是什么意思,这可能涉及TimeSpan,具体取决于上下文和用法。如果你只是想改变上面 7:00 到 7:45 的范围,只需改变评估即可。
  • 我知道我不应该像这样使用运算符“And”。我想检查时间是否在 7:45 到 8:30 的范围内,以在标签“2nd Period”中写入 ElseIf curDT.Hour >= 7 And curDT.Minute >= 45 And curDT.Hour
  • 从 7 小时 45 分钟到 8 小时 30 分钟 在标签中应保留消息“第二阶段”检查这张照片pokit.org/get/?d4b6cdffb01f6f6fba1749bf1a557a02.jpg
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-03
  • 2013-01-16
  • 2023-04-07
  • 2023-03-18
  • 1970-01-01
相关资源
最近更新 更多