Date Converter: Gregorian, Persian, and Islamic calendars
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
Platform Compatibility
Windows macOS LinuxCategories
Tags
Acknowledgements
Inspired by: Date Converter: Gregorian, Persian, and Islamic calendars
Inspired: Date Converter: Gregorian, Persian, and Islamic calendars
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
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 |