The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Date::HijriDate - Hijri Islamic Dates Calendar

SYNOPSIS

	use Date::HijriDate;

	my $day = 8;			# day of the month
	my $month = 11;			# month 0..11
	my $year = 2013;		# yyyy format
	my $caltype = 1;		# (0 = Julian; 1 = Gregorian)
	my $lang = "en";		# available languages: en, ar
	my %ret;
	
	# get Hijri date for specific Gregorian day
	#%ret = hijri_date($day, $month, $year, $caltype, $lang);
	
	# get current time in Hijri
	#%ret = hijri_now($caltype, $lang);

	# get Hijri time for the specific time stamp
	%ret = hijri_time(time, $caltype, $lang);

	# Western date
	$ret{month}++; # returned month 0..11
	print "Western date: $ret{day}-$ret{month}-$ret{year}\n";
	
	#Arithmetical calendar type 	  	day 	month 	year (AH) 	 
	print "'Arithmetical calendar type'	day	month	'year (AH)'	'month name'\n";
	
	# all returned month 0..11

	#Method 1 civil, astronomical
	$ret{imonth1}++; $ret{imonth2}++;
  	print "Ic [15, civil] $ret{iday1}-$ret{imonth1}-$ret{iyear1}  $ret{iname1}\n";
	print "Ia [15, astronomical] $ret{iday2}-$ret{imonth2}-$ret{iyear2}  $ret{iname2}\n";
	
	#Method 2 civil, astronomical
	$ret{imonth3}++; $ret{imonth4}++;
	print "IIc [16, civil] $ret{iday3}-$ret{imonth3}-$ret{iyear3}  $ret{iname3}\n";
	print "IIa [16, astronomical='MS HijriCalendar'] $ret{iday4}-$ret{imonth4}-$ret{iyear4}  $ret{iname4}\n";
	
	#Method 3 civil, astronomical
	$ret{imonth5}++; $ret{imonth6}++;
	print "IIIc [Fātimid, civil] $ret{iday5}-$ret{imonth5}-$ret{iyear5}  $ret{iname5}\n";
	print "IIIa [Fātimid, astronomical] $ret{iday6}-$ret{imonth6}-$ret{iyear6}  $ret{iname6}\n";
	
	#Method 4 civil, astronomical
	$ret{imonth7}++; $ret{imonth8}++;
	print "IVc [Habash al-Hāsib, civil] $ret{iday7}-$ret{imonth7}-$ret{iyear7}  $ret{iname7}\n";
	print "IVa [Habash al-Hāsib, astronomical] $ret{iday8}-$ret{imonth8}-$ret{iyear8}  $ret{iname8}\n";
	
	print "Julian day: $ret{julday}\n";
	print "Weekday number 0..7, 0=Sunday: $ret{wkday}\n";
	print "Hijri day name: $ret{itoday}\n";
	print "Calender type: ". (($ret{caltype} == 1)? "Gregorian" : "Julian") . "\n";
	print "\n\n";

	# print all dates information for all 8 calculation methods
	foreach my $k(sort keys %ret) {
		print "$k = $ret{$k}\n";
	}
	
	# output

	Western date: 9-12-2013
	'Arithmetical calendar type'	day-month-'year (AH)'	'month name'	
	Ic [15, civil]		5-2-1435	Safar
	Ia [15, astronomical]	6-2-1435	Safar
	IIc [16, civil]	5-2-1435	Safar
	IIa [16, astronomical='MS HijriCalendar']	6-2-1435	Safar
	IIIc [Fātimid, civil]	5-2-1435	Safar
	IIIa [Fātimid, astronomical]	6-2-1435	Safar
	IVc [Habash al-Hāsib, civil]	5-2-1435	Safar
	IVa [Habash al-Hāsib, astronomical]	6-2-1435	Safar
	Julian day:	2456636
	Weekday number 0..7, 0=Sunday:	1
	Hijri day name:	Ithnin
	Calender type:		Gregorian

DESCRIPTION

This module calculates Islamic Hijri calender dates using civil and astronomical 8 methods.

Arithmetical calendar type:
Ic [15, civil]
Ia [15, astronomical]
IIc [16, civil]
IIa [16, astronomical = "MS HijriCalendar"]
IIIc [Fātimid, civil]
IIIa [Fātimid, astronomical]
IVc [Habash al-Hāsib, civil]
IVa [Habash al-Hāsib, astronomical]

Exports three methods hijri_time, hijri_now, and hijri_date. All methods return date information in a single hash.

%ret = hijri_time($time, $caltype, $lang);
$time: unix time stamp;
$caltype: 0 = Julian, 1 = Gregorian
$lang: en, ar only currently supported for weekday and month names.

%ret = hijri_now($caltype, $lang)
return current Hijri time

%ret = hijri_date($day, $month, $year, $caltype, $lang)
return Hijri date for a given western date.
$month: 0..11
$year: yyyy format

SEE ALSO

Religion::Islam::Qibla Religion::Islam::Quran Religion::Islam::PrayTime Religion::Islam::PrayerTimes

AUTHOR

Ahmed Amin Elsheshtawy, <support@islamware.com> <support@mewsoft.com> Website: http://www.islamware.com http://www.mewsoft.com

COPYRIGHT AND LICENSE

Copyright (C) 2013 by Dr. Ahmed Amin Elsheshtawy webmaster@islamware.com, http://www.islamware.com http://www.mewsoft.com

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 348:

Non-ASCII character seen before =encoding in '[Fātimid,'. Assuming UTF-8