使用以下方法在兩個給定日期之間創建日期序列;在兩個給定日期之間創建日期序列 - 二月份失敗
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;
}
創建日期序列,同時增加1個月,例如當給定的日期是:
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
序列我碰到失敗傳遞二月設置在第28天的月份順序的其餘部分時:
2017-01-31
2017-02-28
2017-03-28
2017-04-28
2017-05-28
能有人請解釋這是爲什麼?
一個方法,因爲最後一天在非閏年二月份是28加那個月的1個月將是3月28日,依此類推。不知道什麼是不明白的。如果你想有這樣的功能,可以使用每個月的開始,而不是結束,所以你不必處理每個月和幾年不同的天數(閏年/非閏年)( 28,29,30和31)。 – Igor
如果startdate爲「2017-02-28」,預期行爲如何? – fubo