Vb.net 比较日期和时间

Vb.net 比较日期和时间,vb.net,Vb.net,我想编写一个闹钟应用程序,在用户设置的时间显示特定消息。 如何将系统日期和时间与用户在文本框中设置的时间进行比较? 谢谢 Furqan您应该使用智能感知功能。。。但暗示是: DateTime.Parse 你需要一个计时器,我叫他“计时器”(你应该给他起个更好的名字…),然后从中读答案,他让它独立于文化 Private Sub timEr_Tick(sender As System.Object, e As System.EventArgs) _ Handles timEr.Tick

我想编写一个闹钟应用程序,在用户设置的时间显示特定消息。
如何将系统日期和时间与用户在文本框中设置的时间进行比较? 谢谢
Furqan

您应该使用智能感知功能。。。但暗示是:

DateTime.Parse

你需要一个计时器,我叫他“计时器”(你应该给他起个更好的名字…),然后从中读答案,他让它独立于文化

Private Sub timEr_Tick(sender As System.Object, e As System.EventArgs) _
    Handles timEr.Tick

    timEr.Enabled = False
    If DateTime.Now >= DateTime.Parse("29.06.2011 17:29") Then
        MessageBox.Show("Time to leave the office ....")
    End If

End Sub

您可以将
TextBox.Text
值转换为
DateTime
值,如下所示:

String dateTimeFormat = "MM/dd/yyyy hh:mm:ss tt";    
DateTime dateTimeValue = 
    DateTime.ParseExact(textBox.Text, dateTimeFormat , 
        CultureInfo.InvariantCulture);


将日期和时间的指定字符串表示形式转换为其等效日期时间。字符串表示形式的格式必须与指定的格式完全匹配,否则会引发异常。

最好使用
System.DateTime
对象

只要确保在从文本框中获取用户输入时,将其保存在
DateTime
对象中,然后就可以使用通用的
DateTime.Equals
来比较两者

Dim currentDateTime As New System.DateTime
Dim alarmDateTime As DateTime
currentDateTime = Date.Now
alarmDateTime = 
    New DateTime(2011, Month(Date.Now), dayInput, hourInput, minuteInput, 0)
If currentDateTime.Equals(alarmDateTime) Then
  'alarm code
End If
这样的事情应该完成

编辑:与手动创建alarmDateTime对象相比,其他解决方案中概述的解析方法更适合创建alarmDateTime对象。

由于您使用的是VB.NET,因此可以使用Microsoft.VisualBasic.DateAndTime中的功能。例如,您可以使用
DateTime.Parse
(或者更好的是,
.TryParse
)获取用户值的
DateTime
表示,然后检查系统时间是否在用户时间的一分钟内。这样,你就不需要再浪费时间了

Dim diffInMinutes As Long = 
    Microsoft.VisualBasic.DateAndTime.
        DateDiff(DateInterval.Minute, userTime, DateTime.Now)

谢谢除了在结束时将计时器带到end.Enabled=False,如果