2009-10-02 75 views
2

控制器:爲什麼AddMonths()不能在我的DateTime上工作? (見代碼)

 DateTime startDate = DateTime.Now; 

     ViewData["now"] = startDate.ToString(); 
     ViewData["interval"] = interval.ToString(); 

     startDate.AddMonths(interval); 

     ViewData["later"] = startDate.ToString(); 

檢視:

Now: <%=ViewData["now"] %><br /> 

Later: <%=ViewData["later"] %><br /> 

Interval: <%=ViewData["interval"] %> 

這產生了:

Now: 10/2/2009 12:17:14 PM 
Later: 10/2/2009 12:17:14 PM 
Interval: 6 

回答

16
startDate = startDate.AddMonths(interval); 
+0

這是正確的。日期時間上的操作是非破壞性的。 – 2009-10-02 16:23:48

3

AddMonths返回一個新的日期時間與所述值。

startDate = startDate.AddMonths(interval) 
5

從文檔:

此方法不改變此DateTime對象的值。而是返回一個新的DateTime對象,其值是此操作的結果。

你真的想:

計算機[ 「後」] = startDate.AddMonths(間隔)的ToString();

或類似的東西。

3

您需要將AddMonths的結果賦值給一個變量。 AddMonths不會更改其被調用的對象的值,而是會返回一個新的DateTime,並返回值原來的DateTime值保持不變。

相關問題