一般的日历库是顶多支持1800年到2200年,但是sxtwl支持BC722到9999年之间的所有日期。
如果有需要做古人八字,祖先八字、考古日历参考, 古代的农历阳历转换 这些需要的,强烈推荐。下面是一些常用功能的介绍。
1. 安装sxtwl库
2. 公历转农历
| day = sxtwl.fromSolar(2022, 2, 6) |
| s = "农历:%d年%s%d月%d日" % (day.getLunarYear(), '闰' if day.isLunarLeap() else '', day.getLunarMonth(), day.getLunarDay()) |
| print(s) |

3.农历转公历
| |
| day = sxtwl.fromLunar(2022, 1, 6) |
| |
| s = "公历:%d年%d月%d日" % (day.getSolarYear(), day.getSolarMonth(), day.getSolarDay()) |
| s |

其他用法
| import sxtwl |
| |
| |
| jqmc = ["冬至", "小寒", "大寒", "立春", "雨水", "惊蛰", "春分", "清明", "谷雨", "立夏", "小满", "芒种", "夏至", "小暑", "大暑", "立秋", "处暑", "白露", "秋分", "寒露", "霜降", "立冬", "小雪", "大雪"] |
| Gan = ["甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"]; |
| Zhi = ["子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"] |
| ShX = ["鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"] |
| WeekCn = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"] |
| XiZ = ('摩羯', '水瓶', '双鱼', '白羊', '金牛', '双子', '巨蟹', '狮子', '处女', '天秤', '天蝎', '射手') |
| |
| |
| |
| day = sxtwl.fromSolar(2021, 11, 7) |
| |
| |
| |
| |
| |
| s = "公历:%d年%d月%d日" % (day.getSolarYear(), day.getSolarMonth(), day.getSolarDay()) |
| print(s) |
| |
| |
| print(WeekCn[day.getWeek()]) |
| |
| |
| print('该日属于这个月的第%d周'%(day.getWeekIndex(),)) |
| |
| |
| print("星座:", XiZ[day.getConstellation()]) |
| |
| |
| 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]) |
| |
| |
| 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 ) |
| |
| |
| 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) |
| 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: |
| |
| day = day.after(1) |
| |
| if day.hasJieQi(): |
| print('节气:%s'% jqmc[day.getJieQi()]) |
| |
| jd = day.getJieQiJD() |
| |
| |
| t = sxtwl.JD2DD(jd ) |
| |
| |
| print("节气时间:%d-%d-%d %d:%d:%d"%(t.Y, t.M, t.D, t.h, t.m, round(t.s))) |
| |
| break |
| |
| |
2024-10-05 14:36:46 星期六
本文参考:https://blog.csdn.net/lifulinghan/article/details/81484332
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?