一般的日历库是顶多支持1800年到2200年,但是sxtwl支持BC722到9999年之间的所有日期。
如果有需要做古人八字,祖先八字、考古日历参考, 古代的农历阳历转换 这些需要的,强烈推荐。下面是一些常用功能的介绍。

安装方法

pip install sxtwl

阳历转农历


import sxtwl
day = sxtwl.fromSolar(2021, 11, 7)# 以春节为界的农历(注getLunarYear如果没有传参,或者传true,是以春节为界的)
s = "农历:%d年%s%d月%d日" % (day.getLunarYear(), '闰' if day.isLunarLeap() else '', day.getLunarMonth(), day.getLunarDay())
print(s)# 以立春为界的农历
s = "农历:%d年%s%d月%d日" % (day.getLunarYear(False), '闰' if day.isLunarLeap() else '', day.getLunarMonth(), day.getLunarDay())
print(s)

农历转阳历


import sxtwl
# 如果查的是闰月,只要在第四个参数加一个true 如sxtwl.fromLunar(2020, 4, 1, true)
day = sxtwl.fromLunar(2020, 12, 1)
# 公历的年月日
s = "公历:%d年%d月%d日" % (day.getSolarYear(), day.getSolarMonth(), day.getSolarDay())
print(s)

更多的使用方法


import sxtwl## 一些常量文字的定义。
jqmc = ["冬至", "小寒", "大寒", "立春", "雨水", "惊蛰", "春分", "清明", "谷雨", "立夏", "小满", "芒种", "夏至", "小暑", "大暑", "立秋", "处暑", "白露", "秋分", "寒露", "霜降", "立冬", "小雪", "大雪"]
Gan  = ["甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"];
Zhi =  ["子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"]
ShX =  ["鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"]
WeekCn = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]
XiZ = ('摩羯', '水瓶', '双鱼', '白羊', '金牛', '双子', '巨蟹', '狮子', '处女', '天秤', '天蝎', '射手')# 从公历年月日获取一天的信息
day = sxtwl.fromSolar(2021, 11, 7)# 从农历年月日获取一天的信息
# day = sxtwl.fromLunar(2020, 12, 1)# 公历的年月日
s = "公历:%d年%d月%d日" % (day.getSolarYear(), day.getSolarMonth(), day.getSolarDay())
print(s)# 星期几
print(WeekCn[day.getWeek()])# 这个月的第几周
print('该日属于这个月的第%d周'%(day.getWeekIndex(),))# 星座(有bug?待修复)
print("星座:", XiZ[day.getConstellation()])# 以春节为界的农历(注getLunarYear如果没有传参,或者传true,是以春节为界的)
s = "农历:%d年%s%d月%d日" % (day.getLunarYear(), '闰' if day.isLunarLeap() else '', day.getLunarMonth(), day.getLunarDay())
print(s)# 不以立春为界的农历
s = "农历:%d年%s%d月%d日" % (day.getLunarYear(False), '闰' if day.isLunarLeap() else '', day.getLunarMonth(), day.getLunarDay())
print(s)# 以春节为界的天干地支
yTG = day.getYearGZ(True)
print("以春节为界的年干支", Gan[yTG.tg] + Zhi[yTG.dz])
print("以春节为界的生肖:", ShX[yTG.dz])# 以立春为界的天干地支 (注,如果没有传参,或者传false,是以立春为界的。刚好和getLunarYear相反)
yTG = day.getYearGZ()
print("以立春为界的年干支", Gan[yTG.tg] + Zhi[yTG.dz])
print("以立春为界的生肖:", ShX[yTG.dz])#月干支
mTG = day.getMonthGZ()
print("月干支", Gan[mTG.tg] + Zhi[mTG.dz]) #日干支
dTG  = day.getDayGZ()
print("日干支", Gan[dTG.tg] + Zhi[dTG.dz]) #时干支
for hour in range(24):# 第一个参数为该天的天干,第二个参数为小时hTG  = sxtwl.getShiGz(dTG.tg, hour)print("%d时天干地支:"%(hour), Gan[hTG.tg] + Zhi[hTG.dz])# 当日是否有节气
if day.hasJieQi():print('节气:%s'% jqmc[day.getJieQi()])#获取节气的儒略日数jd = day.getJieQiJD()# 将儒略日数转换成年月日时秒t = sxtwl.JD2DD(jd )# 注意,t.s是小数,需要四舍五入print("节气时间:%d-%d-%d %d:%d:%d"%(t.Y, t.M, t.D, t.h, t.m, round(t.s)))
else:print("当天不是节气日")# 四注反查 分别传的是年天干,月天干,日天干,时天干, 开始查询年,结束查询年  返回满足条件的儒略日数
jds = sxtwl.siZhu2Year(yTG, mTG, dTG, sxtwl.GZ(5, 5), 2003, 2029);
for jd in jds:t = sxtwl.JD2DD(jd )print("符合条件的时间:%d-%d-%d %d:%d:%d"%(t.Y, t.M, t.D, t.h, t.m, round(t.s)))# 获取一年中的闰月
year = 2020
month = sxtwl.getRunMonth(year)
if month >= 0:print("%d年的闰月是%d"%(year, month) )
else:print("没有闰月")# 一个农历月的天数
year = 2020 #农历年
month  = 4 #农历月
isRun = False #是否是闰月
daynum = sxtwl.getLunarMonthNum(year, month, isRun)
print("农历%d年%s%d月的天数:"%(year, '闰'if isRun else '', month), daynum)#儒略日数转公历
jd = sxtwl.J2000
t = sxtwl.JD2DD(jd )#公历转儒略日
jd = sxtwl.toJD(t)# 获取某天的后面几天
num = 1    #你喜欢写多少天 也多少天,可以写负数,相当于往前
day = day.after(num)  #获取num天后的日信息
s = "公历:%d年%d月%d日" % (day.getSolarYear(), day.getSolarMonth(), day.getSolarDay())
print(s)# 同上
day = day.before(num)
s = "公历:%d年%d月%d日" % (day.getSolarYear(), day.getSolarMonth(), day.getSolarDay())
print(s)# 查找某日前后的节气
while True:# 这里可以使用after或者before,不用担心速度,这里的计算在底层仅仅是+1这么简单day = day.after(1)# hasJieQi的接口比getJieQiJD速度要快,你也可以使用getJieQiJD来判断是否有节气。if day.hasJieQi():print('节气:%s'% jqmc[day.getJieQi()])#获取节气的儒略日数, 如果说你要计算什么时间的相距多少,直接比对儒略日要方便,相信我。jd = day.getJieQiJD()# 将儒略日数转换成年月日时秒t = sxtwl.JD2DD(jd )# 注意,t.s是小数,需要四舍五入print("节气时间:%d-%d-%d %d:%d:%d"%(t.Y, t.M, t.D, t.h, t.m, round(t.s)))break

python下的一个好用的日历库,支持农历和公历互转,是一个很好用的日期包相关推荐

  1. python下的一个好用的日历库,支持农历和公历互转,四柱反查等功能

    一般的日历库是顶多支持1800年到2200年,但是sxtwl支持BC722到9999年之间的所有日期. 如果有需要做古人八字,祖先八字.考古日历参考, 古代的农历阳历转换 这些需要的,强烈推荐.下面是 ...

  2. (windows下)php-ini文件和开启gd库支持

    本文主要是记录一下自己为了开启gd库的惨痛经历.(GD库是第三方函数库,可以在php中画图) 主要是针对从官网下载压缩包的安装方式.如果有权限问题,可以用管理员登录电脑去操作,一了百了,解决所有麻烦. ...

  3. python日历库_python下的一个好用的日历库,支持农历转公历,和公历转农历等功能...

    sxtwl_cpp是寿星天文历的C++版本实现.支持多种语言的绑定. 安装方法 pip install sxtwl windows下的二进制安装包: 传送门 # -*- coding:utf-8 -* ...

  4. C#下的一个好用的日历库(sxtwl_cpp),支持农历转公历,和公历转农历等功能

    2019独角兽企业重金招聘Python工程师标准>>> sxtwl_cpp是寿星天文历的C++版本实现.支持多种语言的绑定 代码首页 懒人包 懒人包使用方法 1.右链工程中的引用-& ...

  5. 使用Java探索下农历和公历,哈哈,还有我生日,和国庆节假日

    记得去年国庆节立的flag,希望多写写文章的,可是自己太懒了,遇到的问题待解决之后就再也没心思写文章记录下了.从去年到现在也就16篇文章,确实是输出太少了,有时候遇到同样的问题时仍然需要花一些时间查资 ...

  6. Windows 平台下面的IOCP技术 Linux下面Epoll 还有FreeBSD下面Kqueue的应用了。跨平台库行业里面最出名的莫过于ACE、ASIO(Boos公司)两大支持库支持IOCP

    http://wenku.baidu.com/view/4117460502020740be1e9b3c.html 游戏服务器集群 自从2003年开发VOIP Radius Server以及修改Gnu ...

  7. python打开一个文件-python下几种打开文件的方式

    昨天看完了这本python进阶,感觉这本书对我启发很大,做了三张纸的笔记,方便我在遇到问题的时候翻阅,然后寻找可能的解决方案.作为一个使用Python一年的小白,虽然说不是小白,但是这一年来基本上是用 ...

  8. pyscripter与python的关系_Pyscripter是python下一个非常流行的开源IDE

    背景 Pyscripter是python下一个非常流行的开源IDE,笔者一直使用Pyscripter来来编写python脚本. 关于IDE的一些特性本文不在赘述,主要是分享一下今天遇到的一个问题. 问 ...

  9. 如何运行一个python下的的小游戏

    首先安装python参考文档https://blog.csdn.net/qq_45502336/article/details/109531599?ops_request_misc=%257B%252 ...

  10. python猴子偷桃 #题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第

    #猴子偷桃 #题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第 10 天早 ...

最新文章

  1. 成功解决ValueError: Shape of passed values is (33, 1), indices imply (33, 2)
  2. 机械加工工艺师手册_机械加工工艺师——机床应用篇
  3. MakeFile中文手册(免费下载)-徐海兵整理
  4. anaconda在win下和在mac下的安装区别
  5. python游戏程序编码_python实现的生成随机迷宫算法核心代码分享(含游戏完整代码)...
  6. 加了元学习之后,少样本学习竟然可以变得这么简单!
  7. ceiling和floor转化
  8. TypeScript 3.3发布:改进了联合类型调用和构建时间
  9. 来自DFRobot的中文语音识别模块
  10. dcdc芯片效率不高的原因_浅析影响DC-DC转换器效率的主要因素
  11. Java基础之成员变量与局部变量
  12. 微信小程序:微信公众号申请微信小程序并认证的步骤
  13. 五险一金和个人所得税
  14. 黑猴子的家:Minimal Install VS Server with GUI VS GNOME Desktop
  15. 当今的BIOS(UEFI)
  16. Java 调用第三方接口,实战来了!
  17. android+播放器+螺旋效果,螺旋丸特效相机(抖音螺旋丸特效)V2.3.0.3 安卓版
  18. 谷歌浏览器chrome自定义安装
  19. H1102NL 普思Pulse 网络变压器
  20. python 公众号菜单_Python微信公众号后台开发003:自定义菜单

热门文章

  1. 变频电源是否可以节能呢
  2. 微博商城开启社会化电商之路
  3. 从零开始搭建一个Vue项目
  4. 自己动手编写CSDN博客备份工具-blogspider之源码分析(1)
  5. html将图片保存到文件夹,怎么把一张网页上的全部图片都保存到文件夹里
  6. 【STM32】HAL库——ADC
  7. 使用 Moment.js 吧时间戳生成格式化时间
  8. vue功能-数字键盘
  9. 周期性学习率(Cyclical Learning Rate)技术
  10. Nginx+Tomcat实现动静分离