-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)

根据 MSDNDateTime.AddYears方法

数年。value 参数可以是负数或正数。

于 2013-07-05T08:38:54.020 回答
0

你可以试试这个

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