Date::Hijri - Perl extension to convert islamic (hijri) and gregorian dates.
# convert gregorian to hijri date
my ($hd, $hm, $hy) = g2h($gd, $gm, $gy);
# convert hijri to gregorian date
my ($gd, $gm, $gy) = h2g($hd, $hm, $hy);
This simple module converts gregorian dates to islamic (hijri) and vice versa.
The dates must be given as an array containing the day, month and year, and
return the corresponding date as a list with the same elements.
print join("-", g2h(22,8,2003)); # prints 23-6-1424
print join("-", h2g(23,6,1424)); # prints 22-8-2003
This code is just stolen from KDE's kcalendarsystemhijri.cpp at
Copyright (c) 2002-2003 Carlos Moro <firstname.lastname@example.org>
Copyright (c) 2002-2003 Hans Petter Bieker <email@example.com>
kcalendarsystemhijri.cpp is translated from the Lisp code
in ``Calendrical Calculations'' by Nachum Dershowitz and
Edward M. Reingold, Software---Practice & Experience,
vol. 20, no. 9 (September, 1990), pp. 899--928.
This code is in the public domain, but any use of it
should publically acknowledge its source.
Alex Pleiner, <firstname.lastname@example.org>
Copyright (c) 2003 zeitform Internet Dienste. All rights reserved. This program
is free software; you can redistribute it and/or modify it under the same
terms as Perl itself.
I haven't really tested if the converted dates are right and hope someone will
point out mistakes.
Hijri calculations are very difficult. The islamic calendar is a pure lunar
calendar, the new month starts by a physical (i.e. human) sighting of the
crescent moon at a given locale. So it depends on several factors (like
weather) that make it unreliable to calculate islamic calendars in advance. As
a result the dates calculated by Date::Hijri can be false by one or more days.
Please see http://www.rabiah.com/convert/introduction.html for further
I'm not a muslim, but interested in Islamic culture, religion and calendar
system. I believe in the Internet as a chance to realize that we live in a
small world with multiple cultures, religions and philosophies. We can learn
from others and develop tolerance, respect and understanding.
Salam Alaikum (peace be with you)