我正在尝试在 C# 中检查所选日期是否为 2 年(24 个月)。出于某种原因,我在这里得到了逻辑,大脑超负荷。这是我的代码。怎么查是不是2岁?
if (dt.AddMonths(-24) < System.DateTime)
{
return true;
}
else
{
return false;
}
你快到了。假设dt
您要检查的日期超过 2 年,请执行以下操作:
if(dt < System.DateTime.Today.AddMonths(-24))
{
...
}
今天运行此代码 ( ) 然后该语句将在is或更早21/05/2013
时返回 true 。如果要包含,请改用dt
20/05/2011
21/05/2011
<=
注意:还有一种AddYears
方法
return dt < DateTime.Now.AddYears(-2)
而不是AddMonths()
,您可以使用AddYears()
which 在您的情况下更容易理解;
if(dt < DateTime.Now.AddYears(-2))
{
return true;
}
else
{
return false;
}
返回一个新的 DateTime,它将指定的年数添加到此实例的值中
你把它弄反了;您正在检查日期是否为未来 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
比较的结果。
应该:
return dt.AddYears(2) < System.DateTime.Now;