Asp.net 从当前日期减去年份

Asp.net 从当前日期减去年份,asp.net,vb.net,Asp.net,Vb.net,我无法从当前日期中减去所需的年数。 如果我们可以将年份添加到当前日期,如: DateTime.Now.AddYears(1) 为什么没有这样的减去年份的方法呢?因为: DateTime.Now.AddYears(-1) 然而,如果你真的想要一个减法,你总是可以使用 public static class DateExtensions { public static DateTime SubtractYears(this DateTime dateTime, int years)

我无法从当前日期中减去所需的年数。 如果我们可以将年份添加到当前日期,如:

DateTime.Now.AddYears(1)
为什么没有这样的减去年份的方法呢?

因为:

DateTime.Now.AddYears(-1)
然而,如果你真的想要一个减法,你总是可以使用

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

你不需要单独的方法。只需将
AddYears
-1
一起使用即可:

DateTime.Now.AddYears(-1)
根据MSDN:

好几年了值参数可以是负值或正值。

你可以试试这个

DateTime.Now.AddYears(-1)

是的,这是C#语法的一个很好的特性。