2011-07-29 60 views
0

這裏是一個代碼片段,我必須選擇一個合適的日期來預約約會,它應該做一個簡單的驗證,爲約會選擇的日期是一個日期或者是當前日期或晚於這一點。從datTimePicker選擇一個日期

if (dateTimePicker1.Value < DateTime.Now) 
      toolStripStatusLabel1.Text = "Date Selected is not Proper"; 
else (dateTimePicker1.Value >= DateTime.Now) 
      toolStripStatusLabel1.Text = "Date Selected is " + dateTimePicker.Value; 

但是,在這裏,當我選擇當前日期它總是在if塊。當我選擇日期晚於當前日期它工作正常。

謝謝

回答

2

因爲DateTime.Now包含當天的時間,請嘗試DateTime.Today,它只會獲取日期。

0

的的DateTimePicker具有MinimumDate屬性,會爲你做這個檢查 - 你試過了嗎?下面是文檔:

http://msdn.microsoft.com/en-us/library/system.windows.forms.datetimepicker.mindate(v=vs.80).aspx 

另外,請記住,DateTime.Now具有時/分/秒 - 這不是從你的例子清楚,如果你想比只是一個DateTime的日期部分...?

希望這有助於

約翰

4

你忘記了日期時間的時間部分。你應該使用這樣的:

if (dateTimePicker1.Value < DateTime.Today) 
     toolStripStatusLabel1.Text = "Date Selected is not Proper"; 
else (dateTimePicker1.Value >= DateTime.Today) 
     toolStripStatusLabel1.Text = "Date Selected is " + dateTimePicker.Value; 
2

因爲DateTime.Now不僅返回數據,它也返回的時間。所以要解決這個問題:

使用DateTime.Now.Date代替DateTime.Now

0

這是由於milisecond差..你需要檢查僅日期部分而不是時間的一部分......嘗試使用TimeSpan在僅日期它應該解決你的問題。

2

DateTime.Now包括的日期和時間,並
'2011-07-29' 永遠比 '2011-07-29十三時50分00秒' 少

使用DateTime.Now.Date,或DateTime.Today這種比較。

相關問題