datetime picker mindate和maxdate

时间:2017-06-13 07:57:24

标签: c# .net winforms

我使用此代码在datetimepicker中设置mindate和maxdate小时:

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

我的问题是,当我想为另一个工作班次设置另一个思想和最大化时:

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

消息错误是

  

注意必须小于maxdate。

请帮忙吗?感谢

2 个答案:

答案 0 :(得分:2)

问题是你今天得到解析时间的日期。 而今天22:00比今天早6点还要少。

使用这段代码时可以避免此问题

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

今天你会得到 MinDate = 13.06.2017 22:00 MaxDate = 14.06.2017 6:00

答案 1 :(得分: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);