我使用此代码在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。
请帮忙吗?感谢
答案 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);