[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
FreeHijri
- To: developer at arabeyes dot org
- Subject: FreeHijri
- From: Roozbeh Pournader <roozbeh at sharif dot edu>
- Date: Tue, 27 May 2003 22:13:34 +0430 (IRST)
- Cc: Behdad Esfahbod <behdad at behdad dot org>
Today, me and Behdad were trying to develop a sane, realistic, and
implementable model for a Lunar Islamic or Hijri calendar library, and we
came to some general ideas to make it *really work*.
First of all, let me tell you about the real problems:
1) The Hijri calendar is based on the location of the reference point on
the Earth. So we can't have a single calendar for everybody on Earth.
2) A single country needs a single fixed calendar for its official matters
and the usually-nationwide festivites, and because of the possiblity for
moon being visible in certain parts of a country but not in the others, a
central authority in each government or country needs to determine and
announce the official starting days of Lunar months, and most
specifically Ramadan and Shawwal.
3) Because of the importance of the general stability of the calendar,
and specially for being able to predetermine the holidays, all Islamic
countries have a civil calendar, using different algorithms (either
computational or astronomical) for pre-determining the starting days of
all of the months of the year. That calendar is then published before
the beginning of the year on paper, and then all the citizens can use
it.
4) But because of the very special importance of Ramadan and Shawwal in
Muslim fasting, in most of the Islamic countries the starting days of
these two are observed based on actually seeing the moon crescent, not
relying on the computational or the astronomical algorithm. Different
Islamic countries have different religious or civil laws for determining
those, and sometimes the authority for publishing the pre-computed
calendar is different from the authority for announcing the starting
days of Ramadan and Shawwal. Sometimes, one of these authorities,
specially the first, may change without previous notice.
5) All of that makes implementing a worldwide Hijri calendar really
hard.
What we were thinking about, is starting a general Hijri library project,
that is able to help determining the real date actually used at a certain
moment in each Islamic country.
We have some broad ideas on how to maintain the library, since it will be
*hard* to do that, and that will need many volunteers from different
countries for at least providing the data, and updating it on-time.
But technically, and from a developer point of view, it will work this
way:
1) We will use the publicly available algorithms for computing the
calendars. A good reference for the algorithm to use will be the ones
available in the book "Calendrical Calculations: The Millennium Edition"
by Edward M. Reingold and Nachum Dershowitz. The algorithms in that book
are already implemented in GNU Emacs.
2) Since each country will have a different situation (like civil calendar
vs astronomical calendar), the exact situation of each country with an
official Lunar calendar will be specified in data files, that will include
things like the exact position of the reference point of the country on
Earth, its height, its timezone, which kind of algorithm it uses, ...
The data will be updated based on more available information.
3) For countries that observe the moon crescent officially, there will be
a central database of starting days of such Hijri months in Gregorian
dates, based on the announcements of the authority. The calendar computing
software will have a daemon that automatically fetches and updates this
data file frequently, and most importantly on certain dates like the
ending days of Sha'ban and Ramadan. This table will be in a certain
format, to be usable by different
We restate that we're not looking at the human parts of the work yet, and
what a huge effort it will need to be updated regularly and ontime. But we
guess this is the only way to have a working and minimally-maintained
Hijri calendar on each and every Free Software desktop.
Suggestions? Ideas?
Roozbeh