Mam następujący fragment kodu, że mogę używać, aby uzyskać poszczególne daty pomiędzy dwiema datami:Utwórz tablicę miesięcy między dwiema datami
DateTime[] output = Enumerable.Range(0, 1 + endDate.Subtract(startDate).Days)
.Select(offset => startDate.AddDays(offset))
.ToArray();
jednak następującą sekcję
endDate.Subtract(startDate).Days
nie posiada .Miesiące, aby zwrócić miesiące w zakresie dat.
Na przykład, jeśli dostarczę 1/1/2010 i 6/1/2010, spodziewam się, że zwrócę 1/1/2010, 2/1/2010, 3/1/2010, 4/1/2010, 5/1/2010 i 6/1/2010.
Wszelkie pomysły?
Jak działa właściwość 'Months'? Jak by się dowiedział, z którego # miesiąca korzystać? Po odjęciu pozostajesz z TimeSpan, który jest neutralny pod względem daty, a zatem nie wie nic o tym, które miesiące wykorzystać. –
możliwy duplikat [Różnica w miesiącach] (http: // stackoverflow.com/questions/1525990/difference-in-months) –
'.Days' zwraca ** liczbę dni ** w przedziale, a nie rzeczywiste dni. Jak definiujesz fakt, że "* miesiąc jest pomiędzy 2 datami *"? Miesiąc ma ** co najmniej 1 dzień ** w tym przedziale? Miesiąc ma ** wszystkie dni ** w przedziale? Również w jaki sposób należy reprezentować miesiąc przy użyciu struktury 'DateTime'? - jako 1 dzień miesiąca? – CyberDude