在c#中将日期限制为2000年后的日期

时间:2015-10-12 23:42:19

标签: c# datetime

所以我有一个代码可以转换由" /"分隔的3个数字;进入尽可能早的日期。所以2012年9月22日是2012年9月22日。然而,有些日期早在1933年出现。我想知道如何将日期限制在2000年之后。 这是打印日期的代码:

String v = Convert.ToString(year);
             String x = Convert.ToString(mon);
             String w = Convert.ToString(day);
             String z = v + "-" + x + "-" + w;

             DateTime fg;
             if (DateTime.TryParse(z, out fg)){
                  String hh = fg.ToString();
                  DateTime dt = DateTime.Parse(hh, cultureinfo);
                 Console.Write(dt);
             }

1 个答案:

答案 0 :(得分:2)

Year 2000 Problem命中时,人们争先恐后地想出如何处理从未为全部四位数分配空间的旧系统中的两位数日期。如果可能的话,我建议你在自己的系统中避免两位数的日期。

处理现有两位数日期的一种技术是引入一个名为date windowing的概念,其中较低数字的日期将被解释为2000年,较高数字日期将被解释为1900年。这在许多情况下起作用,但导致一位105岁的女士收到注册幼儿园的邀请(以及许多其他问题)。

这发生在这里。

您可以使用Calendar.TwoDigitYearMax

来控制用于决定两位数年份是当前还是上个世纪的截止值
  

此属性允许将2位数年份正确转换为4位数年份。例如,如果此属性设置为2029,则100年范围为1930年至2029年。因此,2位数值30表示为1930,而2位数值29表示为2029。 / p>