Date Converter: Gregorian, Persian, and Islamic calendars

Version 3.1.3 (8.34 KB) by Omar Joya
Converts dates across Gregorian, Persian/ Jalali (Solar Hijri), and Islamic Lunar Hijri calendars
360 Downloads
Updated 12 Nov 2020

View License

dateconv(Y,M,D,from_calend,to_calend) computes bilateral date conversion between Gregorian Common Era ('ce'), Persian Solar Hijri or Jalali ('sh'), and Islamic Lunar Hijri ('lh') calendars. Outputs a 1x3 numeric array vector of [Y,M,D], and a character array with printed date with month names in Persian, Arabic, or English. For Persian and Islamic calendars, the numbers are shown in Eastern Arabic numerals.

For example:
[outdatenum,outdatetxt] = dateconv(2000,1,1,'ce','sh') returns the equivalent date for Jan 1, 2000 in Persian Solar Hijri calendar:

>> [outdatenum,outdatetxt] = dateconv(2000,1,1,'ce','sh')
outdatenum =
1378 10 11
outdatetxt =
'۱۱ دی/جدی ۱۳۷۸'

>> datetoday
Today's date is:
12-Nov-2020
۲۲ آبان/عقرب ۱۳۹۹
۲۶ ربيع-الأول ۱۴۴۲

Conversion takes place through the Julian Day Number. Each calendar is converted to and computed back from the Julian Day Number.

For Gregorian calendar, the algorithm by NASA/Goddard is adopted, which correctly computes the dates for Proleptic era (before 1582).

For Persian/ Jalali calendar, the algorithm is based on the method proposed by Musa Akrami (2014) and implemented by Soroush Rabiei (2017).

Check & tests:

The start of the Persian calendar epoch (1/1/475 SH) per Akrami's 2,820 years cycle starts on Mar 15, 1096 (and NOT on March 21st as other date converter algorithms suggest):
>> dateconv(475,1,1,'sh','ce')
ans =
1096 3 15

The first day of the Persian calendar starts on Mar 19, 622:
>> dateconv(1,1,1,'sh','ce')
ans =
622 3 19

The first day of the Islamic Lunar Hijri starts on July 16, 622:
>> dateconv(1,1,1,'lh','ce')
ans =
622 7 16

Cite As

Omar Joya (2024). Date Converter: Gregorian, Persian, and Islamic calendars (https://www.mathworks.com/matlabcentral/fileexchange/67221-date-converter-gregorian-persian-and-islamic-calendars), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2018a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Dates and Time in Help Center and MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
3.1.3

Fixed the 1-day difference that occurred in previous versions between conversion from Islamic calendar to JDN and vice versa.

3.1.2

Fixed the 1-day difference that occurred in previous versions between conversion from Islamic calendar to JDN and vice versa.

3.1.1

Fixed the 1-day difference that occurred in the conversion from Islamic calendar (Lunar Hijri) to JDN and vice versa.

2.1.0.1

Fixed conversion issue from Islamic Lunar Hijri to Gregorian calendar

2.1.0.0

Fixed conversion issue from Islamic Lunar Hijri to Gregorian calendar

2.0.0.0

Added the feature to show printed date with month names in Persian, Arabic, or English. For Persian and Islamic calendars, the numbers are shown in Eastern Arabic numerals.

1.0.0.0