Bug 147660 - Implement Jalali Calendar in LibreOffice
Summary: Implement Jalali Calendar in LibreOffice
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: LibreOffice (show other bugs)
(earliest affected)
Hardware: All All
: medium enhancement
Assignee: Not Assigned
Depends on:
Blocks: 143912 149908
  Show dependency treegraph
Reported: 2022-02-25 22:02 UTC by Hossein
Modified: 2022-07-08 11:22 UTC (History)
3 users (show)

See Also:
Crash report or crash signature:
Regression By:


Note You need to log in before you can comment on or make changes to this bug.
Description Hossein 2022-02-25 22:02:04 UTC
Jalali (Hijri Shamsi, or Solaro Hijri) is the calendar used in Iran and Afghanistan. It shares the same epoch (start date, Hijra) with the (Lunar) Hijri calendar which is available in Libreoffice as i18npool/source/calendar/calendar_hijri.cxx. The difference is that the Jalali calendar uses solar years.

An introduction to Jalali calendar can be found here:

Solar Hijri calendar

Currently, people may use a macro to be able to use Jalali Calendar, but it has its own shortcomings:

Persian or Jalali Calndar for Calc

A good FOSS implementation of Jalali calendar is available in C programming language without extra dependencies:


It has been used in Ubuntu, Debian and elsewhere:
Comment 1 Eike Rathke 2022-02-26 23:50:09 UTC
Note that *only* the libjalali sources
are licensed LGPLv3+ and could be used as external module, jcal itself is GPLv3+ and as such can not be incorporated into LibreOffice source code.
The library is available in Debian as
and in Fedora as

Original upstream appears to be
Comment 2 Roland Kurmann 2022-04-10 11:38:46 UTC
It would be good to have support for Persian calendar in LibreOffice.
Comment 3 Mike Kaganski 2022-07-08 10:56:33 UTC
First of all, we need some clarity here. Several terms seem mixed, creating confusion and a way to mistakes: Jalali and Hijri Shamsi, which are *different* calendars, the former being a non-algorithmic one, defined by ongoing astronomical observations. The latter one is said to use 33 (sometimes 29) year cycles, also requiring periodical synchronization using astronomical data. But the libjalali, mentioned further, is implemented using 2820 years cycle [1], which is "Birashk leap year algorithm" [2], said to be an *alternative* computation method suggested in early XX century, and to be much less precise than both Jalali and Hijri.

The existence of the library in the distro repos sais nothing about its usage to implement system calendar using it. Is it actually used for the purpose? And more importantly - does it match what Excel implemented? We likely need a spreadsheet from Excel with important dates for very large period helping make sure we do it properly. 

[1] https://git.savannah.nongnu.org/cgit/jcal.git/tree/sources/libjalali/jalali.c#n54
[2] https://en.wikipedia.org/wiki/Solar_Hijri_calendar#Birashk_leap_year_algorithm
Comment 4 Mike Kaganski 2022-07-08 11:22:19 UTC
(In reply to Mike Kaganski from comment #3)
> "Birashk leap year algorithm" [2], said
> to be an *alternative* computation method suggested in early XX century, and
> to be much less precise than both Jalali and Hijri.

Indeed, not "early" but "late"; let me quote some Wikipedia:

> Some predictive algorithms had been suggested, but were inaccurate due to
> confusion between the average tropical year (365.2422 days) and the mean
> interval between spring equinoxes (365.2424 days). These algorithms are not
> generally used (see Accuracy).
> ...
> Iranian mathematician Ahmad Birashk (1907–2002) proposed an alternative means
> of determining leap years. Birashk's book came out in 1993, and his algorithm
> was based on the same apparently erroneous presumptions as used by Zabih
> Behruz in his book from 1952.
> ...
> The accuracy of the system proposed by Birashk and other recent authors, such
> as Zabih Behruz, has been thoroughly refuted and shown to be less precise than
> the traditional 33-year cycle.