0

先月 (11 月) とその 1 か月前 (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

前月の最終日を見つける最も簡単な方法は、現在の月の最初の日 (これは常に有効です) を見つけてから、1 日を引くことです。次に、前の月についても同じことを行います。

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 に答える