Scroll to navigation

Hijri(3pm) User Contributed Perl Documentation Hijri(3pm)


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


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


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.


  #!/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


This code is just stolen from KDE's kcalendarsystemhijri.cpp at

   Copyright (c) 2002-2003 Carlos Moro <>
   Copyright (c) 2002-2003 Hans Petter Bieker <>
   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, <>


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

2022-06-13 perl v5.34.0