我需要在 asp.net 中获取上个月的日期,这意味着如果当前日期是 2013 年 5 月 2 日,那么我想将上一个日期显示为 2013 年 5 月 1 日。如何解决这个问题?
问问题
48544 次
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 回答