I have the following snippet that I use to get the individual dates between two dates:
DateTime[] output = Enumerable.Range(0, 1 + endDate.Subtract(startDate).Days)
.Select(offset => startDate.AddDays(offset))
.ToArray();
However, the following section
endDate.Subtract(startDate).Days
does not have a .Months to return the months in the date range.
For example, if I provide 1/1/2010 and 6/1/2010 I would expect to return 1/1/2010, 2/1/2010, 3/1/2010, 4/1/2010, 5/1/2010 and 6/1/2010.
Any ideas?
Try this:
This includes both the starting month and the ending month. This finds how many months there is, and then creates a new
DateTimebased ond0´s year and month. That means the months are likeyyyy-MM-01. If you want it to includes the time and day ofd0you can replacenew DateTime(d0.Year, d0.Month, 1).AddMonths(m)byd0.AddMonths(m).I see you need an array, in that case you just use
monthsBetween(..., ...).ToArray()or put.ToArray()inside the method.