2011-06-29 220 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)