C# 设置日期时间时出现可笑的mindate maxdate错误
我正在用VS2013用c#编写一个桌面应用程序。在我看来,我犯了一个荒谬的错误,这是不应该产生的。我正在代码中的某个地方设置DateTimePicker的MinDate和MaxDate属性,方法如下:C# 设置日期时间时出现可笑的mindate maxdate错误,c#,datetimepicker,maxdate,mindate,C#,Datetimepicker,Maxdate,Mindate,我正在用VS2013用c#编写一个桌面应用程序。在我看来,我犯了一个荒谬的错误,这是不应该产生的。我正在代码中的某个地方设置DateTimePicker的MinDate和MaxDate属性,方法如下: DateTime minDate = DateTime.Parse(...); DateTime maxDate = DateTime.Parse(...); ... if (maxDate < dtpManuelFirst.MinDate) { dtpManuelFirst.M
DateTime minDate = DateTime.Parse(...);
DateTime maxDate = DateTime.Parse(...);
...
if (maxDate < dtpManuelFirst.MinDate)
{
dtpManuelFirst.MinDate = minDate;
dtpManuelFirst.MaxDate = maxDate;
}
else
{
if (minDate > dtpManuelFirst.MaxDate)
{
dtpManuelFirst.MaxDate = maxDate;
dtpManuelFirst.MinDate = minDate;
}
else
{
dtpManuelFirst.MinDate = minDate;
dtpManuelFirst.MaxDate = maxDate;
}
}
DateTime minDate=DateTime.Parse(…);
DateTime maxDate=DateTime.Parse(…);
...
if(maxDatedtpManuelFirst.MaxDate)
{
dtpManuelFirst.MaxDate=MaxDate;
dtpManuelFirst.MinDate=MinDate;
}
其他的
{
dtpManuelFirst.MinDate=MinDate;
dtpManuelFirst.MaxDate=MaxDate;
}
}
最初我知道minDate值总是小于maxDate值。当minDate大于dtpManuelFirst.MaxDate时(如第二个if条件),它会毫无问题地更新MaxDate属性,而我在更新minDate属性时收到错误“值对minDate无效。minDate必须小于MaxDate”。这是荒谬的,因为我已经在检查这些条件。此外,当我在调试模式下检查时,这些值不支持该错误。任何帮助都会很好 你所有决定的最终结果是你总是在设定
dtpManuelFirst.MinDate = minDate;
dtpManuelFirst.MaxDate = maxDate;
为什么不立即这样做呢不管怎样,当你做同样的事情时,你不需要所有的if-else分支
如果仍然存在问题,请先将dtpManuelFirst.MaxDate
first设置为非常大的值
dtpManuelFirst.MaxDate = DateTime.MaxValue;
dtpManuelFirst.MinDate = minDate;
dtpManuelFirst.MaxDate = maxDate;
我知道这条线很旧了,但也许这条线可以帮助下一个人。。。也许他们应该考虑添加“完整”的数据时间范围:包括小时、分钟和秒。
DateTime firstDayInMonth = new DateTime(today.Year, today.Month, 1, 0, 0, 0);
DateTime lastDayInMonth = new DateTime(today.Year, today.Month, DateTime.DaysInMonth(today.Year, today.Month), 23, 59, 59);
在设置实际值之前,先将MinDate设置为DateTimePicker.MinDateTime,将Max Date设置为DateTimePicker.MaximumDateTime。如下图所示:
dtpManuelFirst.MinDate = DateTimePicker.MinDateTime;
dtpManuelFirst.MaxDate = DateTimePicker.MaximumDateTime;
if (maxDate < dtpManuelFirst.MinDate)
{
dtpManuelFirst.MinDate = minDate;
dtpManuelFirst.MaxDate = maxDate;
}
else
{
if (minDate > dtpManuelFirst.MaxDate)
{
dtpManuelFirst.MaxDate = maxDate;
dtpManuelFirst.MinDate = minDate;
}
else
{
dtpManuelFirst.MinDate = minDate;
dtpManuelFirst.MaxDate = maxDate;
}
}
dtpManuelFirst.MinDate=DateTimePicker.MinDateTime;
dtpManuelFirst.MaxDate=DateTimePicker.MaximumDateTime;
if(maxDatedtpManuelFirst.MaxDate)
{
dtpManuelFirst.MaxDate=MaxDate;
dtpManuelFirst.MinDate=MinDate;
}
其他的
{
dtpManuelFirst.MinDate=MinDate;
dtpManuelFirst.MaxDate=MaxDate;
}
}
它给出错误2014年4月19日对MinDate无效。MinDate必须小于MaxDate。然而,我指定MinDate为2014年4月18日,MaxDate为2014年4月19日。这绝对是一个荒谬的错误:(@ceskin,但您在MaxDate
之前分配了MinDate
。这似乎就是原因。MaxDate
在您设置MinDate
时尚未设置为2014年4月19日,可能是其他原因。