Persian calendar

Description

The modern Persian calendar was adopted in 1925, supplanting (while retaining the month names of) a traditional calendar dating from the eleventh century. The Persian calendar is also known as the Sun's Hijri calendar. In Iran the Persian calendar is called Shamsi.

Special thanks to Mohammad Tahani from the Computer Research Center of Islamic Sciences ( CRCIS ) of I.R.Iran (www.noorsoft.org) for all his help..

Gory details

The calendar consists of 12 months, the first six of which are 31 days, the next five 30 days, and the final month 29 days in a normal year and 30 days in a leap year. As one of the few calendars designed in the era of accurate positional astronomy, the Persian calendar uses a very complex leap year structure which makes it the most accurate solar calendar in use today. Years are grouped into cycles which begin with four normal years after which every fourth subsequent year in the cycle is a leap year. Cycles are grouped into grand cycles of either 128 years (composed of cycles of 29, 33, 33, and 33 years) or 132 years, containing cycles of of 29, 33, 33, and 37 years. A great grand cycle is composed of 21 consecutive 128 year grand cycles and a final 132 grand cycle, for a total of 2820 years. The pattern of normal and leap years which began in 1925 will not repeat until the year 4745!

Each 2820 year great grand cycle contains 2137 normal years of 365 days and 683 leap years of 366 days, with the average year length over the great grand cycle of 365.24219852. So close is this to the actual solar tropical year of 365.24219878 days that the Persian calendar accumulates an error of one day only every 3.8 million years. As a purely solar calendar, months are not synchronised with the phases of the Moon.

Converting to and from the Persian calendar can be done using the Julian Day Number as an intermediat date representation. jdn_persian can be used to convert a Julian Day Number to an Persian date, while persian_jdn can be used to convert an Persian date to a Julian Day Number.

The name of an Persian month can be determined using the persian_MonthName routine.

Examples

In the following example persian_jdn is called to convert the Persian date 9 Shahrivar 1380 to a Julian Day Number. After calling persian_jdn, jdn will have the value of 2452153.

jdn = persian_jdn(1380, 6, 9)

In the following example jdn_persian is called to convert the Julian Day Number 2452153 to a Persian date. After calling jdn_persian, year, month and day will have the values 1380, 6 and 9 respectively.

Call jdn_persian(2452153, year, month, day)

Is the next example, persian_MonthName is called to determine the name of the first Persian Month. The variable monthname will have the value "Farvardin".

monthname = persian_MonthName(1)

See also

persian_jdn, jdn_persian, persian_MonthName

Last update

Julian Day Number:2452191
Civil (Gregorian) date:Monday, 8 October 2001
Julian date:Monday, 25 September 2001
Hebrew date:yom sheni, 21 Tishri 5762
Islamic date:Al-`iTHnain, 20 Rajab 1422
Persian date:Doshanbeh, 16 Mehr 1380

Back to Calendar Math.
mail me
Kees Couprie
Other pages by the same author.