A Chinese Calendar Library in Pure Python
Project Links
Meta
Author: LI Daobing
Requires Python: >=3.7
Classifiers
Development Status
- 4 - Beta
Programming Language
- Python :: 3
- Python :: 3.7
- Python :: 3.8
- Python :: 3.9
- Python :: 3.10
- Python :: 3.11
Operating System
- OS Independent
Topic
- Software Development :: Libraries :: Python Modules
A Chinese Calendar Library in Pure Python
Chinese Calendar: http://en.wikipedia.org/wiki/Chinese_calendar
Install
pip install lunardate
Usage
>>> from lunardate import LunarDate
>>> LunarDate.from_solar_date(1976, 10, 1)
LunarDate(1976, 8, 8, 1)
>>> LunarDate(1976, 8, 8, 1).to_solar_date()
datetime.date(1976, 10, 1)
>>> LunarDate(1976, 8, 8, 1).year
1976
>>> LunarDate(1976, 8, 8, 1).month
8
>>> LunarDate(1976, 8, 8, 1).day
8
>>> LunarDate(1976, 8, 8, 1).is_leap_month
True
>>> today = LunarDate.today()
>>> type(today).__name__
'LunarDate'
>>> # support '+' and '-' between datetime.date and datetime.timedelta
>>> ld = LunarDate(1976,8,8)
>>> sd = datetime.date(2008,1,1)
>>> td = datetime.timedelta(days=10)
>>> ld-ld
datetime.timedelta(0)
>>> ld-sd
datetime.timedelta(-11444)
>>> ld-td
LunarDate(1976, 7, 27, 0)
>>> sd-ld
datetime.timedelta(11444)
>>> ld+td
LunarDate(1976, 8, 18, 0)
>>> td+ld
LunarDate(1976, 8, 18, 0)
>>> ld2 = LunarDate.today()
>>> ld < ld2
True
>>> ld <= ld2
True
>>> ld > ld2
False
>>> ld >= ld2
False
>>> ld == ld2
False
>>> ld != ld2
True
>>> ld == ld
True
>>> LunarDate.today() == LunarDate.today()
True
>>> LunarDate.leap_month_for_year(2023)
2
>>> LunarDate.leap_month_for_year(2022)
None
News
- 0.3.0: drop python 2, add typing hints, rename identifiers to follow PEP 8
- 0.2.2: add LunarDate.leapMonthForYear; fix bug in year 1899
- 0.2.1: fix bug in year 1956
- 0.2.0: extend year to 2099, thanks to @FuGangqiang
- 0.1.5: fix bug in
== - 0.1.4: support '+', '-' and compare, fix bug in year 2050
- 0.1.3: support python 3.0
Limits
this library can only deal with year from 1900 to 2099 (in chinese calendar).
See also
- lunar: http://packages.qa.debian.org/l/lunar.html, A converter written in C, this program is derived from it.
- python-lunar: http://code.google.com/p/liblunar/ Another library written in C, including a python binding.
0.3.0
Jul 07, 2026
0.2.2
Dec 07, 2023
0.2.1
Dec 03, 2023
0.2.0
Oct 07, 2018
0.1.5
Sep 09, 2014
0.1.4
Dec 03, 2008
0.1.3
Oct 06, 2008
0.1.2
Oct 05, 2008
0.1.1
Oct 05, 2008
0.1
Oct 02, 2008
Wheel compatibility matrix
Files in release
No dependencies