我想檢查選定日期是否在C#中是2年(24個月)。出於某種原因,我得到了這裏的邏輯,大腦超負荷。這是我的代碼。我如何檢查它是否2歲?檢查年差
if (dt.AddMonths(-24) < System.DateTime)
{
return true;
}
else
{
return false;
}
我想檢查選定日期是否在C#中是2年(24個月)。出於某種原因,我得到了這裏的邏輯,大腦超負荷。這是我的代碼。我如何檢查它是否2歲?檢查年差
if (dt.AddMonths(-24) < System.DateTime)
{
return true;
}
else
{
return false;
}
你快到了。假設dt
是要檢查的日期超過2歲,這樣做:
if(dt < System.DateTime.Today.AddMonths(-24))
{
...
}
運行這段代碼今日(21/05/2013
),那麼當dt
是20/05/2011
或更早的語句將返回true。如果你想包括21/05/2011
然後用<=
代替
注:還有一個AddYears
方法
應該是:
return dt.AddYears(2) < System.DateTime.Now;
相反的AddMonths()
,您可以使用AddYears()
這是更容易理解你的案件;
if(dt < DateTime.Now.AddYears(-2))
{
return true;
}
else
{
return false;
}
返回一個新的DateTime是增加的年的指定數量的這種情況下
「AddYears」的另一個好處,更重要的是可讀性,它考慮了閏年。 –
@MichaelPerrenoud:AddMonths不考慮閏年?當然,它只是增加/減去月份值,甚至不考慮日期? – musefan
@musefan,我認爲你是對的。我再次閱讀'AddMonths'的文檔,並說明它。 –
你明白了向後的 值;你正在檢查日期是否爲未來2年。
您要麼從DateTime.Now
減去24個月(或2年),要麼將012個月(或2年)加到dt
。
這兩個會做你想要什麼:
if (dt.AddMonths(24) < DateTime.Now) //or dt.AddYears(2)
和
if (dt < DateTime.Now.AddMonths(-24)) //or DateTime.Now.AddYears(-2)
如果所有你真的做的是返回真或假,有沒有必要爲是否。只需return
比較的結果。
我認爲必須將幾個月添加到DateTime.Now而不是日期本身 –
Withouth the minus you mean ... – Mr47
@ vc74它可以是任何一種方式,但如果添加到日期,它需要是+24不是-24。 – Servy