Kuwaiti algorithm
From Wikipedia, the free encyclopedia
Microsoft uses the Kuwaiti algorithm to convert between dates in the Western standard Gregorian calendar and dates in the Hijri or Islamic calendar. There is no fixed correspondence defined in advance between the Gregorian solar calendar and the Islamic lunar calendar, since the latter is defined by the visibility of the new moon by religious authorities and can therefore vary by a day or two, depending on the particular Islamic authority, weather conditions, and other variables. As an attempt to make conversions between the calendars somewhat predictable, Microsoft claims to have created this algorithm based on statistical analysis of historical data from Kuwait. However, its results are identical to a variation of the tabular Islamic calendar, which was introduced by Islamic astronomers around the eighth century.
Inevitably, any arithmetic algorithm is imprecise, and results often differ by a day or two from observation or complex calculation.
[edit] Behavior of Kuwaiti algorithm
Note: This was determined by inspection of the output of the software and is possibly wrong for dates that were not examined.
- Common (non-leap) years have 354 days. Leap years have 355 days.
- Odd-numbered months of the year have 30 days. Even-numbered months have 29 days. Exception: the 12th month of a leap year has 30 days.
- Eleven of every thirty years are leap years. The leap years are the years which are congruent modulo 30 to any of these numbers: 2, 5, 7, 10, 13, 15, 18, 21, 24, 26, 29. Thus, a 30-year cycle always lasts exactly (354×30)+11 = 10631 days.
- Correlation with Gregorian calendar: the 1st of January 2000 (a Saturday) corresponds to the 25th of Ramadan 1420. (Ramadan is the ninth month of the Islamic lunar year.)