logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Date::Hijri - Perl extension to convert islamic (hijri) and gregorian dates.

Author

       Alex Pleiner, <alex@zeitform.de>

Description

       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.

Disclaimer

       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 explanation.

       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)

perl v5.36.0                                       2022-11-20                                         Hijri(3pm)

Examples

         #!/usr/bin/perl -w

         use Date::Hijri;

         print join("-", g2h(22,8,2003));  # prints 23-6-1424
         print join("-", h2g(23,6,1424));  # prints 22-8-2003

Name

       Date::Hijri - Perl extension to convert islamic (hijri) and gregorian dates.

See Also

       This code is just stolen from KDE's kcalendarsystemhijri.cpp at
       http://webcvs.kde.org/cgi-bin/cvsweb.cgi/kdelibs/kdecore/kcalendarsystemhijri.cpp

          Copyright (c) 2002-2003 Carlos Moro <cfmoro@correo.uniovi.es>
          Copyright (c) 2002-2003 Hans Petter Bieker <bieker@kde.org>

          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.

Synopsis

         use Date::Hijri;

         # 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);

See Also