【发布时间】:2009-10-25 13:01:49
【问题描述】:
这会在运行时产生错误:
dateTimePicker.Value = DateTime.MaxValue;
【问题讨论】:
标签: c#
这会在运行时产生错误:
dateTimePicker.Value = DateTime.MaxValue;
【问题讨论】:
标签: c#
你不能。
DateTimePicker 支持的最大日期为DateTimePicker.MaximumDateTime,即12/31/9998; DateTime.MaxValue 是 12/31/9999 23:59:59,也就是一年零一天之后。
你能用DateTimePicker.MaximumDateTime代替DateTime.MaxValue吗?
【讨论】:
您需要使用DateTimePicker.MaximumDateTime 属性。日期时间选择器允许的最大值是 31/12/9998,由 DateTimePicker.MaximumDateTime 表示。而DateTime.MaxValue 的值是 31/12/9999。
【讨论】:
是的,你可以,但它很脏(使用它需要你自担风险)。基本上,它会用 DateTime 对象中的 MaxValue 覆盖 DateTimePicker 中定义的 MaxValue。
将此代码粘贴到 Main(或在启动期间运行的任何方法):
var dtpType = typeof(DateTimePicker);
var field = dtpType.GetField("MaxDateTime", BindingFlags.Public | BindingFlags.Static);
if (field != null)
{
field.SetValue(new DateTimePicker(), DateTime.MaxValue);
}
【讨论】:
也许这有帮助:
这个常数的值是 相当于 23:59:59.9999999, 9999 年 12 月 31 日,正好是一个 00:00:00 之前的 100 纳秒滴答声, 10000 年 1 月 1 日。
一些日历,例如 UmAlQuraCalendar,支持鞋面 早于的日期范围 最大值。在这些情况下,试图 访问变量中的 MaxValue 分配或格式化和解析 操作可以抛出 参数超出范围异常。相当 而不是检索值 DateTime..::.MaxValue,你可以 检索指定的值 文化的最新有效日期值 这 System.Globalization.CultureInfo.DateTimeFormat.Calendar.MaxSupportedDateTime 属性。
公然抄自msdn
【讨论】: