-4

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

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

5 回答 5

7

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

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

今天运行此代码 ( ) 然后该语句将在is或更早21/05/2013时返回 true 。如果要包含,请改用dt20/05/201121/05/2011<=

注意:还有一种AddYears方法

于 2013-05-21T13:49:25.383 回答
6
return dt < DateTime.Now.AddYears(-2)
于 2013-05-21T13:50:08.463 回答
3

而不是AddMonths(),您可以使用AddYears()which 在您的情况下更容易理解;

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

返回一个新的 DateTime,它将指定的年数添加到此实例的值中

于 2013-05-21T13:49:41.843 回答
1

你把它弄反了;您正在检查日期是否为未来 2 年。

您想从 中减去 24 个月(或 2 年)DateTime.Now,或在 中添加 24 个月(或 2 年)dt

这两个都会做你想做的事:

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

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

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

于 2013-05-21T13:56:10.770 回答
0

应该:

return dt.AddYears(2) < System.DateTime.Now;
于 2013-05-21T13:49:34.067 回答