一种农历转换器,包括一些农历和节气,主要来自中国。

LunarCalendar的Python项目详细描述


Last stable version (PyPI)build status

概述

Chinese version(中文版)已提供。

LunarCalendar是一款月球太阳能转换器,在中国有许多农历和太阳能节。

韩国、日本或越南的农历与中国的农历相同,但有不同的节日。 韩国语、日语和越南语的节日可以很容易地包括在内。

LunarCalendar支持1900到2100的时间范围,这可能足够长时间使用。 但如果需要更大的时间范围,可以使用generate.html来扩展它。

LunarCalendar的灵感来自Lunar-Solar-Calendar-Converter

功能

  • 精确的原始数据,与Microsolf的ChineseLunisolarCalendar类同步
  • 轻松扩展节日和语言,同时支持zh_hanszh_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以添加节日和语言。

一些不寻常的节日可能不包括在内。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java通过调试找到日志文件路径?   如何修复这个java。使用selenium的lang.nullpointerException   java无法在规范上下文路径和用户代理提供的URI之间找到匹配项   java是单线程的spring集成通道吗?   java垃圾收集年轻一代扫描   java如何触发关闭Guava AbstractScheduledService?   TagLib端口或类似的Java音频标签读取器   查找最高考试范围的java问题   安卓如何在Kotlin中重写此方法(在Java中工作,但在Kotlin中不工作)   JPA/EclipseLink中的java锁定(Postgres 9.1)   java写入jar中的文件   java根据字符串的字节长度修剪字符串   如何在Java中将十进制时间戳转换为带尾随小数的日期   java查询超过Gerrit REST API中的500限制   使用基本顶点缓冲区和高度数组的opengl Java LWJGL VBO   java为什么会引发此异常以及如何从中恢复?   EclipseMars在Java8更新71之后不会启动   java将变量从表示层传递到逻辑层   使用PHP作为客户端向Java Web服务传递并使用jsessionid