-3

現在の日付から必要な年数を引くことができません。次のように現在の日付に年を追加できるとします。

DateTime.Now.AddYears(1)

年を減算するそのような方法がないのはなぜですか?

4

3 に答える 3

3

なぜなら:

DateTime.Now.AddYears(-1)

ただし、本当に SubtractYears メソッドが必要な場合は、いつでも使用できます

public static class DateExtensions
{
    public static DateTime SubtractYears(this DateTime dateTime, int years)
    {
        return dateTime.AddYears(-years);
    }
}

そしてそれをテストするには:

[TestCase(0)]
[TestCase(1)]
[TestCase(2)]
[TestCase(10)]
[TestCase(2012)]
public void SubtractYearsWorks(int i)
{
    var now = DateTime.Now;
    Assert.AreEqual(now.AddYears(-i), now.SubtractYears(i));
}
于 2013-07-05T08:38:49.853 に答える
2

そのための別の方法は必要ありません。で使用AddYearsするだけ-1です:

DateTime.Now.AddYears(-1)

DateTime.AddYearsMSDNメソッドによると:

数年。value パラメーターは、負または正の値にすることができます。

于 2013-07-05T08:38:54.020 に答える
0

これを試すことができます

DateTime.Now.AddYears(-1)
于 2013-07-05T08:38:58.060 に答える