2015-09-21 33 views
0

我想計算指定日期範圍內的月份列表。如何計算UmAlQuraCalendar中指定日期範圍內的月份列表

例如:

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

我要計算所有的開始和結束日期與月份的名稱之間的月份。

+0

顯示你做了什麼? –

+0

我已經嘗試過像GetMonthsInYear這樣的UmAlQuraCalendar方法,但它沒有幫助,因爲它只給出指定年份或時代的月份。 –

+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得到這個功能,稍作修改。

相關問題