2

控制器:

        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
4

4 回答 4

17
startDate  = startDate.AddMonths(interval);
于 2009-10-02T16:20:35.573 回答
5

从文档中:

此方法不会更改此 DateTime 对象的值。而是返回一个新的 DateTime 对象,其值是此操作的结果。

你真的想要:

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

或类似的东西。

于 2009-10-02T16:22:32.103 回答
3

AddMonths返回一个带有该值的新 DateTime。

startDate = startDate.AddMonths(interval)
于 2009-10-02T16:22:11.933 回答
3

您需要将结果分配给AddMonths变量。AddMonths不会改变它被调用的对象的值,而是返回一个新DateTime的,其值是由操作产生的值,而原始DateTime值保持不变。

于 2009-10-02T16:22:39.903 回答