The Islamic calendar is the official calendar in countries around the Gulf, especially Saudi Arabia. But other Muslim countries use the Gregorian calendar for civil purposes and only turn to the Islamic calendar for religious purposes.
Each month starts when the lunar crescent is first seen (by an actual human being) after a new moon.
Although new moons may be calculated quite precisely, the actual visibility of the crescent is much more difficult to predict. It depends on factors such as weather, the optical properties of the atmosphere, and the location of the observer. It is therefore very difficult to give accurate information in advance about when a new month will start.
Furthermore, some Muslims depend on a local sighting of the moon, whereas others depend on a sighting by authorities somewhere in the Muslim world. Both are valid Islamic practices, but they may lead to different starting days for the months.
All this leads to the conclusion that it's not possible to print a reliable Islamic calendar in advance or to simply calculate the Julian day number for a provided Islamic date. However, calendars are printed for planning purposes, but such calendars are based on estimates of the visibility of the lunar crescent, and the actual month may start a day earlier or later than predicted in the printed calendar.
The algorithms presented here is just one example of an algorithm to convert an Islamic date to a Julian day number.
The slight differences in printed Islamic calendars, worldwide, can be traced to two factors: (1) the absence of a global criterion for first visibility; and (2) the use of different visibility criterion (or method of calculation). Weather conditions and differences in the observer's location also explain why there are sometimes differences in the observances of Islamic dates, worldwide.
Converting to and from the Islamic calendar can be done using the Julian Day Number as an intermediat date representation. jdn_islamic can be used to convert a Julian Day Number to an Islamic date, while islamic_jdn can be used to convert an Islamic date to a Julian Day Number.
The name of an Islamic month can be determined using the islamic_monthName routine, but you should be aware that there are different spellings possible for the names of the Islamic months.
jdn = islamic_jdn(1422, 1, 15)
In the following example jdn_islamic is called to convert the Julian Day Number 2452009 to an Islamic date Muharram 15. After calling jdn_islamic, year, month and day will have the values 1422, 1 and 15 respectively.
Call jdn_islamic(2452009, year, month, day)
Is the next example, islamic_monthName is called to determine the name of the first Islamic Month. monthname will have the value "Muharram".
monthname = islamic_monthName(1)
| Julian Day Number: | 2452059 |
| Civil (Gregorian) date: | 29 May 2001 |
| Julian date: | 16 May 2001 |
| Hebrew date: | 7 Sivan 5761 |
| Islamic date: | 6 Rabi' I 1422 |
| Back to Calendar Math. |
Kees Couprie |
Other pages by the same author. |