Persian calendar finance: working with Jalali dates
The Solar Hijri calendar inside financial computation: leap-year rhythm, the 30-day Esfand, conversion workflows and why day counts and maturities shift across calendars.
Iranian finance runs on two calendars at once: contracts, maturities and coupons are written in Jalali (Solar Hijri) dates, while global systems, day-count libraries and settlement networks speak Gregorian. The dates worksheet keeps both alive at once — enter Jalali, compute in either — and this article explains the calendar machinery you are standing on.
The structure of the Jalali year
- Six months of 31 days: Farvardin through Shahrivar — Farvardin is always 31 days, engine-verified.
- Five months of 30 days: Mehr through Bahman.
- Esfand: 29 days in common years, 30 in leap years — Esfand 1403 has 30 days.
- The year begins at Nowruz, around March 20–21 of the Gregorian calendar.
Leap years: the 33-year rhythm
The Jalali leap rule is astronomical, not a simple modulo-4 — leap years follow a subtle 33-year pattern, which is why 1403 is leap while 1404 is not (both engine-verified). The practical consequence lands in Esfand: 30 days in 1403, 29 in 1404. Any maturity or accrual computed across an Esfand boundary silently depends on getting this right.
| Jalali date | Gregorian equivalent | Note |
|---|---|---|
| 1403-01-01 | 2024-03-20 | Nowruz — year start |
| 1403-12-30 | 2025-03-20 | last day of the leap-year Esfand |
| 1404-01-01 | 2025-03-21 | next Nowruz, one day later |
Conversion workflows that do not break contracts
- Open the dates worksheet and pick the Jalali→Gregorian converter.
- Enter the year, month (1–12) and day — the day selector clamps itself to the month's real length, so 1403-12-30 is accepted while 1404-12-30 is not.
- Read the Gregorian ISO date, the weekday and the reverse conversion — verified: 1403-01-01 ↔ 2024-03-20, a Wednesday.
- Use date arithmetic on either calendar: add days, months or years; month-end additions clamp correctly (Jan 31 + 1 month in a leap 2024 lands on Feb 29, zero days apart).
Why day counts shift between calendars
This is precisely why the engine converts Jalali to Gregorian before running ACT or 30/360 arithmetic: the calendar is a presentation layer, the day count is a numerical layer, and mixing them is how accrued-interest disputes are born. Keep contract dates in Jalali for people, convert to Gregorian for machines, and let the worksheet do the bookkeeping.
Frequently asked questions
Is Esfand always 29 days?
No. In common Jalali years Esfand has 29 days, but in leap years — like 1403 — it has 30, making the whole year 366 Jalali days. The engine verifies this directly: jalaliMonthLength(1403, 12) = 30 and jalaliMonthLength(1404, 12) = 29.
When exactly does the Jalali year start?
On Nowruz, the vernal equinox. In recent years that falls on March 20 or 21 of the Gregorian calendar: 1403-01-01 was 2024-03-20 and 1404-01-01 is 2025-03-21. Because the leap rule is astronomical, the Gregorian anchor can drift by a day between years.
Can I enter Jalali dates directly in the calculator?
Yes. The dates worksheet has a dedicated Jalali→Gregorian section with month and day selectors that respect month lengths (including the 30-day Esfand of leap years), plus weekday names in Persian. Jalali input is converted internally before any day-count or accrual computation runs.
Practice it live
Open the matching worksheet and reproduce every number in this article.
Open calculator