如何将dateTimePicker值设置为DateTime.MaxValue

时间:2009-10-25 13:01:50

标签: c#

这会在运行时生成错误:

dateTimePicker.Value = DateTime.MaxValue;

4 个答案:

答案 0 :(得分:7)

你不能。

DateTimePicker支持的最长日期为DateTimePicker.MaximumDateTime,即12/31/9998; DateTime.MaxValue是12/31/9999 23:59:59,这是一年零一天。

您可以使用DateTimePicker.MaximumDateTime代替DateTime.MaxValue吗?

答案 1 :(得分:3)

您需要使用DateTimePicker.MaximumDateTime属性。日期时间选择器允许的最大值是31/12/9998,由DateTimePicker.MaximumDateTime表示。鉴于DateTime.MaxValue的价值是31/12/9999。

答案 2 :(得分:2)

是的,你可以,但它很脏(使用它需要你自担风险)。基本上,它使用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);
}

答案 3 :(得分:0)

也许这很有帮助:

  

这个常数的值是   相当于23:59:59.9999999,   9999年12月31日,恰好一个   00:00:00之前100纳秒的时间,   1月1日,10000。

     

一些日历,例如   UmAlQuraCalendar,支持上层   日期范围早于   MaxValue的。在这些情况下,试图   在变量中访问MaxValue   分配或格式化和解析   操作可以抛出一个   ArgumentOutOfRangeException。宁   而不是检索的价值   DateTime .. ::。MaxValue,你可以   检索指定的值   文化的最新有效日期值来自   该   System.Globalization.CultureInfo.DateTimeFormat.Calendar.MaxSupportedDateTime   属性。

msdn

公然抄袭