Skip to main content

convert between gregorian and solar hijri calendars

Project description

A very lightweight package that provides functions to convert between Gregorian and Solar Hijri calendars. Solar Hijri is the official calendar being used in Iran.

Installation

Requires Python 3.12+

pip install gshconverter

Usage

The main functions are:

  • solar_hijri_to_gregorian(sh_year: int, sh_month: int, sh_day: int) -> tuple[int, int, int]

  • gregorian_to_solar_hijri(g_year: int, g_month: int, g_day: int) -> tuple[int, int, int]

  • is_g_leap(year: int) -> bool

  • is_sh_leap(year: int) -> bool

Example:

>>> from gshconverter import *
>>> is_sh_leap(1403)
True
>>> solar_hijri_to_gregorian(1403, 12, 30)
(2025, 3, 20)
>>> gregorian_to_solar_hijri(2025, 3, 20)
(1403, 12, 30)

Notes

This library currently assumes 33-year cycles which means it will get inaccurate for dates too far in the future (the first known incorrect year is 1502 SH) or too far in the past (the results are known to be correct at least until 1210 SH according to University of Tehran astronomical calculation).

The output of converter functions are the same as the ones in FarsiWeb’s jalali.c , but gshconverter uses a different algorithm and is written from scratch. It also is faster than the current Python implementation used in jdatetime library .

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gshconverter-0.1.0.tar.gz (14.9 kB view details)

Uploaded Source

Built Distribution

gshconverter-0.1.0-py3-none-any.whl (2.8 kB view details)

Uploaded Python 3

File details

Details for the file gshconverter-0.1.0.tar.gz.

File metadata

  • Download URL: gshconverter-0.1.0.tar.gz
  • Upload date:
  • Size: 14.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.31.0

File hashes

Hashes for gshconverter-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5c210e91b3fc3a9e54a077059bbf2b5c639e6d453a84c35a8022c2884b98cdba
MD5 86f1ffc3521e069ea9790d4b418c5e1c
BLAKE2b-256 b21f07871d9c9b6dba9c952f2dfa8a597bc30f2a8debd324c9ce102a78d02cfb

See more details on using hashes here.

File details

Details for the file gshconverter-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for gshconverter-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1749b8c1bf6b6669030d6ff8e6e8292cb83a534f58728f8ea38b54b7321b45cf
MD5 a4e964eb633cc7915e1eca2b245154c0
BLAKE2b-256 0a122478fda71debbd58b2d95d52bc8ee1b5bf48b72bd37bf4cce26062e59252

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page