-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))
{
  ...
}

このコードを今日 ( 21/05/2013) 実行すると、ステートメントdt20/05/2011、それ以前に true を返します。含めたい場合は、代わり21/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()

 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 に答える