检查年份差异

时间:2013-05-21 13:47:37

标签: c# .net

我正在尝试检查C#中所选日期是否为2年(24个月)。出于某种原因,我在这里得到逻辑,大脑超负荷。这是我的代码。我如何检查它是否是2岁?

if (dt.AddMonths(-24) < System.DateTime)
{
    return true;
}
else
{
    return false;
}

5 个答案:

答案 0 :(得分:7)

你快到了。假设dt是您要检查的日期超过2年,请执行以下操作:

if(dt < System.DateTime.Today.AddMonths(-24))
{
  ...
}

今天运行此代码(21/05/2013),当dt20/05/2011或更早时,语句将返回true。如果您想加入21/05/2011,请改用<=

注意:还有一个AddYears方法

答案 1 :(得分:6)

return dt < DateTime.Now.AddYears(-2)

答案 2 :(得分:3)

而不是AddMonths(),您可以使用AddYears(),这在您的案例中更容易理解;

 if(dt < DateTime.Now.AddYears(-2))
 {
     return true;
 }
 else
 {
    return false;
 }
  

返回将指定年数添加到的新DateTime   此实例的值

答案 3 :(得分:1)

你已经倒退了;你正在检查日期是否为未来2年。

您希望从DateTime.Now减去24个月(或2年),或者将{24}个月(或2年)添加到dt

这两种方法都能满足您的需求:

if (dt.AddMonths(24) < DateTime.Now) //or dt.AddYears(2)

if (dt < DateTime.Now.AddMonths(-24)) //or DateTime.Now.AddYears(-2)

如果您真正做的只是返回真或假,则不需要if。只需return比较结果。

答案 4 :(得分:0)

应该是:

return dt.AddYears(2) < System.DateTime.Now;