2011-06-29 222 views
1

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

回答

0

您应该使用智能感知功能......但提示是:

DateTime.Parse ....

,你需要一个计时器,我称他为“计时器”(你应该他的名字更好....),并从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 
+0

谢谢!这个工作除了在结束后使timEr.Enabled = False结束如果 –

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转换一个日期和时间的日期时间其等效的指定字符串表示。字符串表示的格式必须完全匹配指定的格式或抛出异常。

+0

对我来说太快* g * – nabuchodonossor

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对象更好,而不是手动执行它。

0

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

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