Like the Gregorian and Julian calendars, the Persian calendar is strictly solar in nature; that is, it matches the seasons very nicely (better, in fact, than any other calendar on these pages), but makes no real effort to reflect lunar cycles. There are twelve months per year, as follows.
farvardin (frvrdyn) 31 days ordibehesht (ardybhSt) 31 days khordad (Krdad) 31 days tir (tyr) 31 days mordad (mrdad) 31 days shahrivar (Shryvr) 31 days mehr (mhr) 30 days Aban (Aban) 30 days Azar (AZr) 30 days day (dy) 30 days bahman (bhmn) 30 days esfand (asfnd) 29/30 days
The year begins at the spring equinox. If that instant is before midday, Teheran time, then that day is 1 farvardin; otherwise, the next day is 1 farvardin. This can result in either 365 or 366 days per year. In the former (usual) case, the last month of esfand has 29 days; otherwise, it has 30 days.
The Jalali calendar uses the "exact" astronomical equinox; that is to say, it's based on observations. The Modern Persian calendar instead inserts leap years algorithmically, with a complex pattern of 683 leap days inserted over a cycle of 2820 years. This actually makes the Modern Persian calendar extremely easy to program (see the source code described here.) The Jalali calendar is a little trickier, as will be discussed below.
Ciao MohammadI believe the Persian calendar system is likely the most astronomically accurate of currently used calendar systems.