選択した日付が 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 < DateTime.Now.AddYears(-2)
の代わりに、あなたのケースではどちらがより理解しやすいAddMonths()
かを使用できます。AddYears()
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;