比较日期和时间

时间:2011-06-29 15:22:10

标签: vb.net

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

4 个答案:

答案 0 :(得分:2)

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

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

DateTime.ParseExact Method将指定的日期和时间字符串表示形式转换为其DateTime等效项。字符串表示形式的格式必须与指定的格式完全匹配,否则抛出异常。

答案 1 :(得分:0)

你应该使用intellisense功能......但提示是:

DateTime.Parse ....

你需要一个计时器,我称他为“timEr”(你应该更好地命名他......),并从Akram读出答案,他让文化独立......

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

答案 2 :(得分:0)

您最好的选择是使用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对象比手动执行它更好。

答案 3 :(得分:0)

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

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