0

我必须找到上个月(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。

请让我知道该怎么做。
1 月份应该是 12 月 31 日和 11 月 30 日。

4

1 回答 1

18

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

DateTime startOfMonth = new DateTime(today.Year, today.Month, 1);
DateTime endOfPreviousMonth = startOfMonth.AddDays(-1);
DateTime endOfPreviousPreviousMonth = startOfMonth.AddMonths(-1).AddDays(-1);
于 2012-12-26T09:17:01.730 回答