Как получить список месячных периодов? - PullRequest
1 голос
/ 02 декабря 2010

У меня есть дата начала и количество месяцев.Мне нужно создать определенное количество месячных периодов, например:

var startingDate = new DateTime(2010,1,15);
var months = 3;
for (int i = 0; i < months; i++)
 {
 Console.WriteLine("{0} from {1} to {2}", i + 1, startingDate.AddMonths(i), 
startingDate.AddMonths(i + 1).AddDays(-1));
}
OUTPUT:
1 from 2010-1-15 to 2010-2-14
2 from 2010-2-15 to 2010-3-14
3 from 2010-3-15 to 2010-4-14

В этом случае код прост и работает.Однако когда startDate равен DateTime (2010,1,31), результат будет следующим:

OUTPUT:
1 from 2010-1-31 to 2010-2-27
2 from 2010-2-28 to 2010-3-30
3 from 2010-3-31 to 2010-4-29

Верны ли эти периоды?

Ответы [ 2 ]

1 голос
/ 02 декабря 2010

Вы можете выбрать, правы они или нет.Вот что я имею в виду: если вы начинаете свой период 15 января, начинаете ли вы через 14 дней после первого дня месяца, или вы начинаете за 16 дней до последнего?

Можно дажеболее хитрый.Если 15-е число - вторник, определяется ли ваш период как начало 3-го вторника данного месяца?

В финансовом сообществе много литературы по этому поводу, начиная с конвенций по числу дней, рабочих дней,Скользящие соглашения и т. Д. Могут существенно повлиять на цену финансового продукта и связанные с ним денежные потоки.

1 голос
/ 02 декабря 2010

Периоды выглядят странно, но они верны.

Если ваши периоды начинаются в последний день месяца, они заканчиваются со второго по последний день следующего месяца.

...