如何在UmAlQuraCalendar中计算指定日期范围内的月份列表

时间:2015-09-21 07:54:44

标签: c# asp.net-mvc umalquracalendar

我想计算指定日期范围内的月份列表。

例如:

DateTime StartDate = 24 - 11 - 2014;
DateTime EndDate = 24 - 11 - 2016;

我想用月份名称计算开始日期和结束日期之间的所有月份。

1 个答案:

答案 0 :(得分:0)

在这里,您可以使用静态函数来执行您需要的操作:

    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的月份int值和名称的字典。

我从this answer获取此功能并略微修改它。