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