選択した日付が 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;