2017-02-21 38 views
0

我嘗試計算齋月宴。我使用HijriCalendar來解決這個問題。 我有檢查wikipedia和齋月宴是伊斯蘭月齋月的結束。HijriCalendar計算齋月宴

一些日期是好的,但其他在錯誤的一天(1天延期)

var hijriCalendar = new HijriCalendar(); 

for (var i = 1431; i <= 1438; i++) 
{ 
    var dateTime = new DateTime(i, 10, 1, hijriCalendar); 
    Console.WriteLine(dateTime.ToString("yyyy-MM-dd")); 
} 

公衆假期齋月盛宴 首先值來計算,第二個正確的值

  • 2010-09 -09(2010-09-09)
  • 2011-08-30(2011-08-30)
  • 2012-08-18(2012-08-19) WRONG 1
  • 2013年8月7日(2013年8月8日)WRONG 1
  • 2014年7月28日(2014年7月28日)
  • 2015年7月17日(2015年-07-17)
  • 2016年7月6日(2016年7月5日)WRONG -1
  • 2017年6月25日(2017年7月25日)正確的日期的

https://www.timeanddate.com/holidays/turkey/ramadan-feast

回答

0

它看起來像C#HijriCalendar承認,齋月的日期可以關閉,並提供一個HijriCalendar.HijriAdjustment屬性來說明每年的差異。

的HijriCalendar類的這種實現方式加上或減去從零值到兩天 適應開始方差和齋月和 最終適應各國之間的時間差來調整日曆 日期/地區

查看此頁瞭解更多信息。

https://msdn.microsoft.com/en-us/library/system.globalization.hijricalendar.hijriadjustment(v=vs.110).aspx

+0

如果它HijriAdjustment設置爲其他值的其他年份錯誤的日期。 – live2

+0

我無法確定,但是我讀到的一點點似乎表明,齋月每年都會發生變化,並且每個地區都會發生變化,HijriCalandar並沒有考慮到所有這些變化。可能是因爲c#希望開發人員知道齋月的那一天,並使用調整值來更正數據。也許有更多日曆體驗的人可能會對此有所耳聞。 – ekcell