2013-07-05 452 views
-3

我無法從當前日期減去所需的年數。 如果我們可以添加年內當前的日期,如:減去當前日期的年份

DateTime.Now.AddYears(1) 

爲什麼沒有這樣減去年的方法?

回答

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

'-years'?那會工作嗎? – MarcinJuraszek

+2

是的,這是C#語法的一個很好的特性。 –

2

你不需要單獨的方法。只要使用AddYears-1

DateTime.Now.AddYears(-1) 

根據MSDN DateTime.AddYears Method

數年。 值參數可以是負值也可以是正值。

0

你可以試試這個

DateTime.Now.AddYears(-1)