一种农历转换器,包括一些农历和节气,主要来自中国。
LunarCalendar的Python项目详细描述
概述
LunarCalendar是一款月球太阳能转换器,在中国有许多农历和太阳能节。
韩国、日本或越南的农历与中国的农历相同,但有不同的节日。 韩国语、日语和越南语的节日可以很容易地包括在内。
LunarCalendar支持1900到2100的时间范围,这可能足够长时间使用。 但如果需要更大的时间范围,可以使用generate.html来扩展它。
LunarCalendar的灵感来自Lunar-Solar-Calendar-Converter。
功能
- 精确的原始数据,与Microsolf的ChineseLunisolarCalendar类同步
- 轻松扩展节日和语言,同时支持zh_hans和zh_hant
- 包括农历节日,如:中秋节、除夕、端午节
- 包括没有固定日期的太阳节,如:母亲节、复活节
- 增加了月球和太阳日期的合法性检查
- 支持24个太阳能条款(red春/春分/清明/冬至等)
安装
LunarCalendar可以通过^{TT5}$:
从PYPI安装$ easy_install LunarCalendar
或PIP:
$ pip install LunarCalendar
如果遇到类似command 'gcc' failed with exit status 1 while installing ephem的错误,可能应该先安装python-devel。 对于centos:
$ yum install python-devel
对于ubuntu:
$ apt-get install python-dev
控制台命令
一个名为lunar-find的控制台命令可以使用它的中文名称来查找节日的日期。 默认为今年。支持节日的别名。
$ lunar-find 重阳 重阳节 on 2018: 2018-10-17 $ lunar-find 重陽節 重阳节 on 2018: 2018-10-17 $ lunar-find 登高节 2019重阳节 on 2019: 2019-10-07
您还可以按日期asc打印所有包含的节日或24个节气,并使用:
$ lunar-find all 2019$ lunar-find festival 2012$ lunar-find 节日 2012$ lunar-find solarterm $ lunar-find 节气
快速启动
太阳到月球:
importdatetimefromlunarcalendarimportConverter,Solar,Lunar,DateNotExistsolar=Solar(2018,1,1)print(solar)lunar=Converter.Solar2Lunar(solar)print(lunar)solar=Converter.Lunar2Solar(lunar)print(solar)print(solar.to_date(),type(solar.to_date()))
月球到太阳:
lunar=Lunar(2018,2,30,isleap=False)print(lunar)solar=Converter.Lunar2Solar(lunar)print(solar)lunar=Converter.Solar2Lunar(solar)print(lunar)print(lunar.to_date(),type(lunar.to_date()))print(Lunar.from_date(datetime.date(2018,4,15)))
太阳和月球日期的合法性检查。2018~15(闰月)不存在,但2012-4-4(闰月)存在:
Lunar(2012,4,4,isleap=True)# date(2012, 5, 24)try:lunar=Lunar(2018,2,15,isleap=True)exceptDateNotExist:print(traceback.format_exc())
印刷所有节日,包括中文和英文。欢迎扩展其他语言(fork&pull请求)。
fromlunarcalendar.festivalimportfestivals# print festivals, using English or Chineseprint("----- print all festivals on 2018 in chinese: -----")forfestinfestivals:print(fest.get_lang('zh'),fest(2018))print("----- print all festivals on 2017 in english: -----")forfestinfestivals:print(fest.get_lang('en'),fest(2017))
输出:
...... 母亲节 2018-05-13 父亲节 2018-06-17 中秋节 2018-09-24 感恩节 2018-11-22 重阳节 2018-10-17 春节 2018-02-16 中元节 2018-08-25 七夕节 2018-08-17 腊八节 2019-01-13 清明节 2018-04-05 除夕 2019-02-04 寒衣节 2018-11-08 元宵节 2018-03-02 龙抬头 2018-03-18 端午节 2018-06-18 ......
贡献
包括节日标准:
- 国内常见的节日,如:圣诞节、万圣节等
- 农历节日。
- 没有固定日期的太阳节,如:母亲节、复活节等。
现在只支持中文和英文。如果要添加朝鲜语、日语或越南语支持,请修改lunarcalendar/festival.py以添加节日和语言。
一些不寻常的节日可能不包括在内。