我无法从当前日期减去所需的年数。 如果我们可以在当前日期添加年份,例如:
DateTime.Now.AddYears(1)
为什么没有这样的方法来减去年数?
答案 0 :(得分: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));
}
答案 1 :(得分:2)
你不需要单独的方法。只需将AddYears
与-1
:
DateTime.Now.AddYears(-1)
根据MSDN DateTime.AddYears
Method:
好几年了。 值参数可以是负数或正数。
答案 2 :(得分:0)
你可以试试这个
DateTime.Now.AddYears(-1)