Я хочу рассчитать список месяцев в указанном диапазоне дат.
Например:
DateTime StartDate = 24 - 11 - 2014;
DateTime EndDate = 24 - 11 - 2016;
Я хочу рассчитать все месяцы между датой начала и окончания с именами месяцев.
Я хочу рассчитать список месяцев в указанном диапазоне дат.
Например:
DateTime StartDate = 24 - 11 - 2014;
DateTime EndDate = 24 - 11 - 2016;
Я хочу рассчитать все месяцы между датой начала и окончания с именами месяцев.
Вот вам статическая функция, которая делает то, что вам нужно:
public static Dictionary<int, string> MonthsBetween(
DateTime startDate,
DateTime endDate)
{
DateTime iterator;
DateTime limit;
if (endDate > startDate)
{
iterator = new DateTime(startDate.Year, startDate.Month, 1);
limit = endDate;
}
else
{
iterator = new DateTime(endDate.Year, endDate.Month, 1);
limit = startDate;
}
var dateTimeFormat = CultureInfo.CurrentCulture.DateTimeFormat;
var result = new Dictionary<int, string>();
while (iterator <= limit)
{
if (!result.Keys.Contains(iterator.Month))
result.Add(iterator.Month, dateTimeFormat.GetMonthName(iterator.Month));
iterator = iterator.AddMonths(1);
}
return result;
}
вы можете использовать его следующим образом:
DateTime startDate = new DateTime(2014, 11, 24);
DateTime endDate = new DateTime(2016, 11, 24);
var list = Program.MonthsBetween(startDate, endDate);
Переменная list
содержит словарь со значением месяца и именем в соответствии с CultureInfo.CurrentCulture
вашей программы.
Я получаю эту функцию из этого ответа и немного изменяю ее.