2017-06-13 78 views
0

我用這個代碼來設置MINDATE和的maxDate小時的DateTimePicker:日期時間選擇器MINDATE和的maxDate

oraDa.MinDate = DateTime.Parse("14:00"); 
oraDa.MaxDate = DateTime.Parse("22:00");`. 

我的問題是,當我想爲另一個工作班次另一MINDATE和的maxDate:

oraDa.MinDate = DateTime.Parse("22:00"); 
oraDa.MaxDate = DateTime.Parse("6:00");. 

消息錯誤是

MINDATE必須次要小於的maxDate。

請幫忙嗎?謝謝

+0

嗯,我想那是因爲22:00是在6點之後,試着用另一種方式來解決這個問題。 – Yonlif

+0

對你來說這將是一個可能的解決方案? –

回答

1

DateTime變量(或屬性)總是由日期部分和時間部分組成。如果不設定日期的一部分,它被認爲是今天的日期,所以你DateTime.Parse代碼產生以下結果

13/06/2017 06:00 is lesser than 13/06/2017 22:00 

所以你被迫把完整的日期,而你沒有需要解析一個字符串。

oraDa.MinDate = DateTime.Today.AddHours(22); 
oraDa.MaxDate = DateTime.Today.AddDays(1).AddHours(6); 
2

問題是,你今天得到了解析時間的日期。 今天22:00比今天6:00少。

使用這段代碼

oraDa.MinDate = DateTime.Parse("22:00"); 
oraDa.MaxDate = DateTime.Parse("6:00").AddDays(1); 

時,對於今天你會得到你可以避開這個問題爲MinDate = 2017年6月13日22:00MAXDATE = 2017年6月14日6:00

+0

感謝您的回覆!我使用這個解決方案,但是當設置了maxdate表達式時,直到23.00節來顯示小時...我不知道爲什麼... –