25

我需要在 asp.net 中获取上个月的日期,这意味着如果当前日期是 2013 年 5 月 2 日,那么我想将上一个日期显示为 2013 年 5 月 1 日。如何解决这个问题?

4

3 回答 3

49

试试这个 :

DateTime d = DateTime.Now;
d = d.AddMonths(-1);
于 2013-02-05T07:48:39.797 回答
14

解决方法是减去 1 个月:

DateTime.Now.AddMonths(-1)

或者,如果不只是从头开始构建 datetime 对象:

var previousDate = DateTime.Now.AddMonth(-1);

var date = new DateTime(previousDate.Year, previousDate.Month, DateTime.Now.Day);

这一次您可以保证年份和月份是正确的,并且日期保持不变。(虽然这不是一个安全的算法,因为像 3 月 30 日这样的情况,前一个日期应该是 2 月 28/29 日,所以最好先考虑减去一个月)

于 2013-02-05T07:48:18.937 回答
5

如果您已经有字符串格式的日期时间

var strDate = "5/1/2013";
var dateTime = DateTime.ParseExact(strDate, 
                                   "dd/MM/yyyy",
                                   CultureInfo.InvariantCulture);

var lastMonthDateTime = dateTime.AddMonths(-1);

否则,如果您有DateTime对象,只需调用它的AddMonths(-1)方法。

于 2013-02-05T07:52:39.533 回答