次の方法を使用して、指定された2つの日付間に日付シーケンスを作成します。例えば、指定した日付である場合には、1ヶ月インクリメントしながら、日付のシーケンスを作成与えられた2つの日付間の日付シーケンスの作成 - 2月2日に失敗する
public List<DateTime> dateSeq(DateTime startDate, DateTime endDate)
{
List<DateTime> allDates = new List<DateTime>();
for (DateTime date = startDate; date <= endDate; date = date.AddMonths(1))
allDates.Add(date);
return allDates;
}
:
startDate: 2017-01-01
endDate: 2017-05-01
私が手シーケンスは大丈夫です:
2017-01-01
2017-02-01
2017-03-01
2017-04-01
2017-05-01
しかし、与えられた日付以下のとおりです。
startDate: 2017-01-31
endDate: 2017-05-31
は私が渡して2月は28日目ヶ月シーケンスの残りの部分を設定するときに失敗取得シーケンス:つまり、なぜ
2017-01-31
2017-02-28
2017-03-28
2017-04-28
2017-05-28
誰かが説明していただけますか?
を維持アプローチを探していると思いますその日までの1ヶ月は行進の28日となります。何が理解できないのか分かりません。このような機能を持たせたい場合は、終わりではなく、毎月の開始点を使用します。したがって、月と年に応じて変化する毎月の日数(閏年/非閏年)を処理する必要はありません28,29,30および31)。 – Igor
startdateが '2017-02-28'の場合、どのように動作するのでしょうか? – fubo