Help language development. Donate to The Perl Foundation

Date::Calendar::Hijri cpan:JFORGET last updated on 2021-02-12



Date::Calendar::Hijri - Arithmetic variant of the Hijri calendar


Converting a Gregorian date (e.g. 7th February 2021) into Hijri

use Date::Calendar::Hijri;
my Date $dt-greg;
my Date::Calendar::Hijri $dt-hijri;

$dt-greg  .= new(2021, 2, 7);
$dt-hijri .= new-from-date($dt-greg);

say $dt-hijri;
# --> 1442-06-24
say $dt-hijri.strftime("%A %d %B %Y");
# --> Yaum al-Ahad 24 Jumaada al-Thaani 1442

Converting a Hijri date (e.g. 1 Muharram 1443) into Gregorian

use Date::Calendar::Hijri;
my Date::Calendar::Hijri $dt-hijri;
my Date $dt-greg;

$dt-hijri .= new(year => 1443, month => 1, day => 1);
$dt-greg   = $;

say $dt-greg;
# --> 2021-08-10


The real Hijri calendar is an observational calendar. That means that calendar events, such as switching from a month to the next, depend of the observation of some astronomical events, such as observing the moon crescent after a new moon. But there is an unofficial arithmetic variant, which differs from the real one by one or two days.

Date::Calendar::Hijri is a class representing dates in the arithmetic variant of the Hijri calendar. It allows you to convert a Hijri date into Gregorian (or possibly other) calendar and the other way.


zef install Date::Calendar::Hijri


git clone
cd raku-Date-Calendar-Hijri
zef install .


Jean Forget [email protected]


Copyright (c) 2021 Jean Forget, all rights reserved.

This library is free software; you can redistribute it and/or modify it under the Artistic License 2.0.