[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

FreeHijri



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