需要找到上个月的最后一天和上个月的前一天

时间:2012-12-26 09:14:13

标签: c#

我必须找到上个月(11月)的最后日期和之前的一个月(10月) 我使用了以下代码:

DateTime today = DateTime.Today;
DateTime endOfLastMonth = new DateTime(today.Year, today.Month - 1, 1).AddMonths(1).AddDays(-1);
DateTime endOfLastLastMonth = new DateTime(today.Year, today.Month - 2, 1).AddMonths(1).AddDays(-1); 

代码适用于今天但在1月份代码失败,因为它将月份部分提供为0和-1。

请让我知道怎么做。
对于jan月,应该说11月31日和11月30日。

1 个答案:

答案 0 :(得分:18)

查找上个月最后一天的最简单方法是找到当月的第一个日(始终有效),然后减去一天。然后在上个月做同样的事情。

DateTime startOfMonth = new DateTime(today.Year, today.Month, 1);
DateTime endOfPreviousMonth = startOfMonth.AddDays(-1);
DateTime endOfPreviousPreviousMonth = startOfMonth.AddMonths(-1).AddDays(-1);