访问东亚日历的python模块(sexagenary cycle、solar term等)

eacal的Python项目详细描述


eastasiacalendars提供了一个用于访问east的eacalpython模块 亚洲历法系统,起源于中国,流传到韩国, 越南和日本。本模块包括以下内容。

太阳项是根据行星运动计算出来的 PyEphem。太阳的精确性 条款可能在一分钟之内。

此软件的使用结果是不保证的。你可以使用,修改, 并在GNU LESSER GENERAL PUBLIC LICENSE Version 3下重新分发此软件。

要求

安装

所需的包(pyephem、pytz和jdcal)是自动的 通过pip安装。

pip install eacal

示例和用法

此软件包支持中文(繁体/简体)、日语, 朝鲜语、越南语和英语(翻译)。任何时区都可以是 使用pytz包指定。

计算一年内的太阳项

2015年英语的节气(UTC)。

>>>importeacal>>>fromdatetimeimportdatetime>>>c=eacal.EACal()>>>forxinc.get_annual_solar_terms(2015):...print"%2d%-25s%s"%(x[1],x[0],datetime.strftime(x[2],"%Y-%m-%d %H:%M %Z"))22minorcold2015-01-0516:20UTC23majorcold2015-01-2009:43UTC0startofspring2015-02-0403:58UTC1rainwater2015-02-1823:49UTC2awakeningofinsects2015-03-0521:55UTC3vernalequinox2015-03-2022:45UTC...20majorsnow2015-12-0710:53UTC21wintersolstice2015-12-2204:47UTC
< 2015节,为中国人(香港时间), 简体中文(中国标准时间)、日语(日本 标准时间)、韩语(在韩国标准时间)和越南语(在 印度支那时间)。

>>>importeacal>>>fromdatetimeimportdatetime>>>c_t=eacal.EACal(zh_t=True)>>>forxinc_t.get_annual_solar_terms(2015):...print"%2d%s%s"%(x[1],x[0],datetime.strftime(x[2],"%Y-%m-%d %H:%M %Z"))22小寒2015-01-0600:20HKT23大寒2015-01-2017:43HKT0立春2015-02-0411:58HKT1雨水2015-02-1907:49HKT2驚蟄2015-03-0605:55HKT3春分2015-03-2106:45HKT...20大雪2015-12-0718:53HKT21冬至2015-12-2212:47HKT>>>c_s=eacal.EACal(zh_s=True)>>>forxinc_s.get_annual_solar_terms(2015):...print"%2d%s%s"%(x[1],x[0],datetime.strftime(x[2],"%Y-%m-%d %H:%M %Z"))22小寒2015-01-0600:20CST23大寒2015-01-2017:43CST0立春2015-02-0411:58CST1雨水2015-02-1907:49CST2惊蛰2015-03-0605:55CST3春分2015-03-2106:45CST小寒2015-01-0600:20CST大寒2015-01-2017:43CST立春2015-02-0411:58CST雨水2015-02-1907:49CST惊蛰2015-03-0605:55CST春分2015-03-2106:45CST...20大雪2015-12-0718:53CST21冬至2015-12-2212:47CST>>>c_j=eacal.EACal(ja=True)>>>forxinc_j.get_annual_solar_terms(2015):...print"%2d%s%s"%(x[1],x[0],datetime.strftime(x[2],"%Y-%m-%d %H:%M %Z"))22小寒2015-01-0601:20JST23大寒2015-01-2018:43JST0立春2015-02-0412:58JST1雨水2015-02-1908:49JST2啓蟄2015-03-0606:55JST3春分2015-03-2107:45JST...20大雪2015-12-0719:53JST21冬至2015-12-2213:47JST>>>c_k=eacal.EACal(ko=True)>>>forxinc_k.get_annual_solar_terms(2015):...print"%2d%s%s"%(x[1],x[0],datetime.strftime(x[2],"%Y-%m-%d %H:%M %Z"))22소한2015-01-0601:20KST23대한2015-01-2018:43KST0입춘2015-02-0412:58KST1우수2015-02-1908:49KST2경칩2015-03-0606:55KST3춘분2015-03-2107:45KST...20대설2015-12-0719:53KST21동지2015-12-2213:47KST>>>c_v=eacal.EACal(vi=True)>>>forxinc_v.get_annual_solar_terms(2015):...print"%2d%-12s%s"%(x[1],x[0],datetime.strftime(x[2],"%Y-%m-%d %H:%M %Z"))22Tiểuhàn2015-01-0523:20ICT23Đạihàn2015-01-2016:43ICT0Lậpxuân2015-02-0410:58ICT1thủy2015-02-1906:49ICT2Kinhtrập2015-03-0604:55ICT3Xuânphân2015-03-2105:45ICT...20Đạituyết2015-12-0717:53ICT21Đôngchí2015-12-2211:47ICT

北美东部时区2015年太阳活动期。

>>>importeacal>>>importpytz>>>fromdatetimeimportdatetime>>>c=eacal.EACal(tz=pytz.timezone('America/New_York'))>>>forxinc.get_annual_solar_terms(2015):...print"%2d%-25s%s"%(x[1],x[0],datetime.strftime(x[2],"%Y-%m-%d %H:%M %Z"))22minorcold2015-01-0511:20EST23majorcold2015-01-2004:43EST0startofspring2015-02-0322:58EST1rainwater2015-02-1818:49EST2awakeningofinsects2015-03-0516:55EST3vernalequinox2015-03-2018:45EDT# in DST...20majorsnow2015-12-0705:53EST21wintersolstice2015-12-2123:47EST

计算性别周期

计算2015年的周期年。

>>>importeacal>>>print(eacal.EACal().get_cycle_year(2015))wood-yingoat# 乙未>>>print(eacal.EACal(zh_t=True).get_cycle_year(2015))乙未>>>print(eacal.EACal(vi=True).get_cycle_year(2015))tmùi# 乙未>>>print(eacal.EACal().get_cycle_year(2015,id=True))31# 31=wood-yin goat

计算2015年5月的循环月份。

>>>importeacal>>>print(eacal.EACal().get_cycle_month(2015,5))metal-yinsnake# 辛巳>>>print(eacal.EACal(ja=True).get_cycle_month(2015,5))辛巳>>>print(eacal.EACal(ko=True).get_cycle_month(2015,5))신사# 辛巳>>>print(eacal.EACal().get_cycle_month(2015,5,id=True))17# 17=metal-yin snake

计算2015年5月10日循环日。

>>>importeacal>>>fromdatetimeimportdatetime>>>print(eacal.EACal().get_cycle_day(datetime(2015,5,10)))fire-yangdog# 丙戌>>>print(eacal.EACal(zh_s=True).get_cycle_day(datetime(2015,5,10)))丙戌>>>print(eacal.EACal(vi=True).get_cycle_day(datetime(2015,5,10)))bínhtuất# 丙戌>>>print(eacal.EACal().get_cycle_day(datetime(2015,5,10),id=True))22# 22=fire-yang dog

计算春季前后的周期年、月和日 2015年。

>>>importeacal>>>fromdatetimeimportdatetime>>>c=eacal.EACal()# for English, in UTC>>>print('|'.join(c.get_cycle_ymd(datetime(2015,2,3))))wood-yanghorse|fire-yinox|metal-yangdog# 甲午年 丁丑月 庚戌日>>>print('|'.join(c.get_cycle_ymd(datetime(2015,2,4))))wood-yingoat|earth-yangtiger|metal-yinpig# 乙未年 戊寅月 辛亥日 (cyclic year and cyclic month incremented at the start of spring)>>>print('|'.join(c.get_cycle_ymd(datetime(2015,2,5))))wood-yingoat|earth-yangtiger|water-yangrat# 乙未年 戊寅月 壬子日>>>print(c.get_cycle_ymd(datetime(2015,2,3),id=True))(30,13,46)# 30=wood-yang horse, 13=fire-yin ox, 46=metal-yang dog>>>print(c.get_cycle_ymd(datetime(2015,2,4),id=True))(31,14,47)# 31=wood-yin goat, 14=earth-yang tiger, 47=metal-yin pig>>>print(c.get_cycle_ymd(datetime(2015,2,5),id=True))(31,14,48)# 48=water-yang rat

计算zassetsu

>>>importeacal>>>importpytz>>>fromdatetimeimportdatetime,timedelta>>>c=eacal.EACal(tz=pytz.timezone('Asia/Tokyo'))# for English, in Japan Standard Time>>>forxinc.get_annual_jp_seasonal_days(2015):...iflen(x)==4:...print("%3d%s%s%s"%(x[1],datetime.strftime(x[2],"%Y-%m-%d"),datetime.strftime(x[3]-timedelta(days=1),"%Y-%m-%d"),x[0]))...else:...print("%3d%s%s"%(x[1],datetime.strftime(x[2],"%Y-%m-%d"),x[0]))12015-01-172015-02-03doyō:winter22015-04-172015-05-05doyō:spring32015-07-202015-08-07doyō:summer42015-10-212015-11-07doyō:autumn112015-03-182015-03-24higan:spring122015-09-202015-09-26higan:autumn1012015-02-03setsubun:thedaybeforethestartofspring1022015-05-02hachijū-hachi-ya:the88thnightafterthestartofspring1032015-09-01nihyaku-tōka:the210thdayafterthestartofspring1112015-06-11nyūbai:thebeginningofrainyseason1122015-07-02hangeshō:theendoffieldwork>>>c_j=eacal.EACal(ja=True)# for Japanese, in Japan Standard Time>>>forxinc_j.get_annual_jp_seasonal_days(2015):...iflen(x)==4:...print("%3d%s%s%s"%(x[1],datetime.strftime(x[2],"%Y-%m-%d"),datetime.strftime(x[3]-timedelta(days=1),"%Y-%m-%d"),x[0]))...else:...print("%3d%s%s"%(x[1],datetime.strftime(x[2],"%Y-%m-%d"),x[0]))12015-01-172015-02-03土用:22015-04-172015-05-05土用:32015-07-202015-08-07土用:42015-10-212015-11-07土用:112015-03-182015-03-24彼岸:122015-09-202015-09-26彼岸:1012015-02-03節分1022015-05-02八十八夜1032015-09-01二百十日1112015-06-11入梅1122015-07-02半夏生

历史记录

版本0.0.3(2015-05-17)

  • 添加一个“id”选项以获取周期年()、周期月()和 获取循环日(
    • 此选项使方法能够返回 性别周期。
  • 完善solar_term_finder()的实现
  • 重新编号太阳术语id
    • 从“春季开始”(0=春季开始-23=严寒)

版本0.0.2(2015-05-13)

  • 固定文档(readme.md,readme_ja.md)
  • 添加安装程序需要安装.py
    • 必需的包pyephem、pytz和jdcal是自动的 通过PIP安装
  • 用英语修复了一个地球分支

版本0.0.1(2015-05-12)

  • 第一个版本。

待办事项

  • 一种查找具有指定的性别周期的天数的方法
  • 日月历
  • 统治年
  • 适应中国周期年
  • 编写单元测试
  • Windows环境文档

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

推荐PyPI第三方库


热门话题
java Jboss LinkageError:加载程序约束冲突:解析重写的方法时   java Struts 1:如何使用表单bean设置<html:multibox/>值?   使用Fortify将字段设置为Null时的Java Null取消引用   用java对连接字符的图像进行分割   java无法使用Quarkus模拟,NullPointer异常,无法找到相关导入   html试图使iframe垫片与Java小程序上的CSS下拉菜单一起工作   java无法获取Base64。decodeBase64正常工作(Commons编解码器)   java为什么我不能通过点击打开jar文件?   java当用户第一次使用预先填充的sqlite数据库时,安卓应用程序如何添加新的列或表?   在tomcat中安装java GoDaddy SSL证书。。。没有与私钥匹配的证书   java试图实现一些伪代码、算法   java如何读取其他按钮id,避免所有转到第一个按钮   java使用单个   oop为什么Java Map不扩展集合?