lunar是一款无第三方依赖的公历 python调用

lunar是一款无第三方依赖的公历(阳历)、农历(阴历、老黄历)、佛历和道历工具,支持星座、儒略日、干支、生肖、节气、节日、彭祖百忌、吉神(喜神/福神/财神/阳贵神/阴贵神)方位、胎神方位、冲煞、纳音、星宿、八字、五行、十神、建除十二值星、青龙名堂等十二神、黄道日及吉凶、法定节假日及调休等。

# -*- coding: utf-8 -*-
from lunar_python import Lunar, Solar
from lunar_python.util import HolidayUtil
from datetime import datetime# 节气表
print('节气表')
lunar = Solar.fromYmd(2025, 1, 1).getLunar()
jieQi = lunar.getJieQiTable()
for k in lunar.getJieQiList():print(k + ' = ' + jieQi[k].toYmdHms())
print('')
# 月相
#print(lunar.getMonthZhiGong())
# 八字
print('八字')
baZi = lunar.getEightChar()
print(baZi.getYear() + ' ' + baZi.getMonth() + ' ' + baZi.getDay() + ' ' + baZi.getTime())# 八字五行
print('八字五行')
print(baZi.getYearWuXing() + ' ' + baZi.getMonthWuXing() + ' ' + baZi.getDayWuXing() + ' ' + baZi.getTimeWuXing())# 八字天干十神
print('八字天干十神')
print(baZi.getYearShiShenGan() + ' ' + baZi.getMonthShiShenGan() + ' ' + baZi.getDayShiShenGan() + ' ' + baZi.getTimeShiShenGan())# 八字地支十神
print('八字地支十神')
print(baZi.getYearShiShenZhi()[0] + ' ' + baZi.getMonthShiShenZhi()[0] + ' ' + baZi.getDayShiShenZhi()[0] + ' ' + baZi.getTimeShiShenZhi()[0])# 遍历八字年支十神
print('八字天干十神')
for v in baZi.getYearShiShenZhi():print(v)
print('')# 遍历八字月支十神
print
for v in baZi.getMonthShiShenZhi():print(v)
print('')# 遍历八字日支十神
print('八字日支十神')
for v in baZi.getDayShiShenZhi():print(v)
print('')# 遍历八字时支十神
for v in baZi.getTimeShiShenZhi():print(v)
print('')solar = Solar(1988, 2, 15, 23, 30, 0)
lunar = solar.getLunar()
baZi = lunar.getEightChar()
print(baZi.getYear() + ' ' + baZi.getMonth() + ' ' + baZi.getDay() + ' ' + baZi.getTime())solar = Solar(1983, 2, 15, 20, 0, 0)
lunar = solar.getLunar()
baZi = lunar.getEightChar()# 女运
print('女运')
yun = baZi.getYun(0)
print('阳历' + solar.toYmdHms() + '出生')
print('出生' + str(yun.getStartYear()) + '年' + str(yun.getStartMonth()) + '个月' + str(yun.getStartDay()) + '天后起运')
print('阳历' + yun.getStartSolar().toYmd() + '后起运')
print('')# 大运
print('大运')
daYunArr = yun.getDaYun()
for i in range(0, len(daYunArr)):daYun = daYunArr[i]print('大运[' + str(i) + '] ' + str(daYun.getStartYear()) + '年 ' + str(daYun.getStartAge()) + '岁 ' + daYun.getGanZhi())
print('')# 大运[0] 流年
print('大运[0] 流年')
liuNianArr = daYunArr[0].getLiuNian()
for i in range(0, len(liuNianArr)):liuNian = liuNianArr[i]print('流年[' + str(i) + '] ' + str(liuNian.getYear()) + '年 ' + str(liuNian.getAge()) + '岁 ' + liuNian.getGanZhi())
print('')# 大运[0] 小运
print('大运[0] 小运')
xiaoYunArr = daYunArr[0].getXiaoYun()
for i in range(0, len(xiaoYunArr)):xiaoYun = xiaoYunArr[i]print('小运[' + str(i) + '] ' + str(xiaoYun.getYear()) + '年 ' + str(xiaoYun.getAge()) + '岁 ' + xiaoYun.getGanZhi())
print('')# 流年[0] 流月
print('流年[0] 流月')
liuYueArr = liuNianArr[0].getLiuYue()
for i in range(0, len(liuYueArr)):liuYue = liuYueArr[i]print('流月[' + str(i) + '] ' + str(liuYue.getMonthInChinese()) + '月 ' + liuYue.getGanZhi())
print('')# 通过指定年月日初始化阴历
print
lunar = Lunar.fromYmd(1986, 4, 21)# 打印阴历
print("打印阴历")
print(lunar.toFullString())# 阴历转阳历并打印
print("阴历转阳历并打印")
print(lunar.getSolar().toFullString())# 节假日信息
print("节假日信息")
print(HolidayUtil.getHoliday('2020-05-02'))# 儒略日
print("儒略日")
solar = Solar.fromYmd(2020, 7, 15)
print(solar.getJulianDay())solar = Solar.fromJulianDay(2459045.5)
print(solar.toYmdHms())
print('')# 八字转阳历
print("八字转阳历")
for d in Solar.fromBaZi("庚子", "戊子", "己卯", "庚午"):print(d.toFullString())date = Solar.fromYmd(2020, 1, 23)
print("2020-01-24" == date.next(1).toString())
# 仅工作日,跨越春节假期
print(" 仅工作日,跨越春节假期")
print("2020-02-03" == date.next(1, True).toString())date = Solar.fromYmd(2020, 2, 3)
print("2020-01-31" == date.next(-3).toString())
# 仅工作日,跨越春节假期
print("仅工作日,跨越春节假期")
print("2020-01-21" == date.next(-3, True).toString())date = Solar.fromYmd(2020, 2, 9)
print("2020-02-15" == date.next(6).toString())
# 仅工作日,跨越周末
print("仅工作日,跨越周末")
print("2020-02-17" == date.next(6, True).toString())date = Solar.fromYmd(2020, 1, 17)
print("2020-01-18" == date.next(1).toString())
# 仅工作日,周日调休按上班算
print("仅工作日,周日调休按上班算")
print("2020-01-19" == date.next(1, True).toString())print("2020-01-01 元旦节 2020-01-01" == HolidayUtil.getHoliday("2020-01-01").toString())# 将2020-01-01修改为春节
print("将2020-01-01修改为春节")
HolidayUtil.fix(None, "202001011120200101")
print("2020-01-01 春节 2020-01-01" == HolidayUtil.getHoliday("2020-01-01").toString())# 追加2099-01-01为元旦节
print("追加2099-01-01为元旦节")
HolidayUtil.fix(None, "209901010120990101")
print("2099-01-01 元旦节 2099-01-01" == HolidayUtil.getHoliday("2099-01-01").toString())# 将2020-01-01修改为春节,并追加2099-01-01为元旦节
print("将2020-01-01修改为春节,并追加2099-01-01为元旦节")
HolidayUtil.fix(None, "202001011120200101209901010120990101")
print("2020-01-01 春节 2020-01-01" == HolidayUtil.getHoliday("2020-01-01").toString())
print("2099-01-01 元旦节 2099-01-01" == HolidayUtil.getHoliday("2099-01-01").toString())# 更改节假日名称
print("更改节假日名称")
names = []
for i in range(0, len(HolidayUtil.NAMES)):names.append(HolidayUtil.NAMES[i])
names[0] = "元旦"
names[1] = "大年初一"HolidayUtil.fix(names, None)
print("2020-01-01 大年初一 2020-01-01" == HolidayUtil.getHoliday("2020-01-01").toString())
print("2099-01-01 元旦 2099-01-01" == HolidayUtil.getHoliday("2099-01-01").toString())# 追加节假日名称和数据
print("追加节假日名称和数据")
names = []
for i in range(0, len(HolidayUtil.NAMES)):names.append(HolidayUtil.NAMES[i])
names.append("我的生日")
names.append("结婚纪念日")
names.append("她的生日")HolidayUtil.fix(names, "20210529912021052920211111:12021111120211201;120211201")
print("2021-05-29 我的生日 2021-05-29" == HolidayUtil.getHoliday("2021-05-29").toString())
print("2021-11-11 结婚纪念日 2021-11-11" == HolidayUtil.getHoliday("2021-11-11").toString())
print("2021-12-01 她的生日 2021-12-01" == HolidayUtil.getHoliday("2021-12-01").toString())# 节日
print("节日")
solar = Solar.fromYmd(2020, 11, 26)
festivals = solar.getFestivals()
for i in range(0, len(festivals)):print(festivals[i])solar = Solar.fromYmd(2020, 6, 21)
festivals = solar.getFestivals()
for i in range(0, len(festivals)):print(festivals[i])solar = Solar.fromYmd(2021, 5, 9)
festivals = solar.getFestivals()
for i in range(0, len(festivals)):print(festivals[i])solar = Solar.fromYmd(1986, 11, 27)
festivals = solar.getFestivals()
for i in range(0, len(festivals)):print(festivals[i])solar = Solar.fromYmd(1985, 6, 16)
festivals = solar.getFestivals()
for i in range(0, len(festivals)):print(festivals[i])solar = Solar.fromYmd(1984, 5, 13)
festivals = solar.getFestivals()
for i in range(0, len(festivals)):print(festivals[i])# 旬
print("旬")
solar = Solar.fromYmdHms(2020, 11, 19, 0, 0, 0)
lunar = solar.getLunar()
# 甲午
print("甲午")
print(lunar.getYearXun())# 旬空(空亡)
print("旬空(空亡)")
# 辰巳
print("辰巳")
print(lunar.getYearXunKong())
# 午未
print("午未")
print(lunar.getMonthXunKong())
# 戌亥
print("戌亥")
print(lunar.getDayXunKong())# 八字日柱旬空(空亡)
print("八字日柱旬空(空亡)")
solar = Solar.fromYmdHms(1990, 12, 23, 8, 37, 0)
lunar = solar.getLunar()
eightChar = lunar.getEightChar()
# 子丑
print("子丑")
print(eightChar.getDayXunKong())# 数九
print("数九")
lunar = Lunar.fromDate(datetime.now())
print(lunar.getShuJiu())# 三伏
print("三伏")
solar = Solar.fromYmd(2020, 8, 24)
lunar = solar.getLunar()
print(lunar.getFu().toFullString())# 六曜
print("六曜")
lunar = Lunar.fromDate(datetime.now())
print(lunar.getLiuYao())# 物候
print("物候")
print(lunar.getWuHou())# 日九星
print("日九星")
print(lunar.getDayNineStar())# 年太岁
print("年太岁")
print(lunar.getYearPositionTaiSui())
print(lunar.getYearPositionTaiSuiDesc())# 月太岁
print("月太岁")
print(lunar.getMonthPositionTaiSui())
print(lunar.getMonthPositionTaiSuiDesc())# 日太岁
print("日太岁")
print(lunar.getDayPositionTaiSui())
print(lunar.getDayPositionTaiSuiDesc())times = lunar.getTimes()
for i in range(0, len(times)):time = times[i]print("%s - %s : %s" % (time.getMinHm(), time.getMaxHm(), time.toString()))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/74036.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣hot100——三数之和(双指针)

题目:三数之和 排序 双指针 本题的难点在于如何去除重复解。 算法流程: 1、特判,对于数组长度 n,如果数组为 null 或者数组长度小于 3,返回 []。 2、对数组进行排序。 3、遍历排序后数组: &#xff08…

操作系统为ubantu的服务器上部署nginx软件基础步骤总结

今天在这里,我们总结一下ubantu的服务器上部署nginx软件,请按照以下步骤进行安装: 1、更新包列表: 首先更新你系统中的可用软件包列表,以确保你可以安装最新版本。 sudo apt update2、 Ubuntu上更新已安装软件包&…

记录一次,rabbitmq开启stomp插件之后,还是连不上15674端口的问题

原因是装在docker 里面的rabbitmq 没有映射15674端口,需重新删除容器之后重新运行 docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -p 15674:15674 -p 1883:1883 -p 15675:15675 rabbitmq:版本号 进入docker容器开启插件 docker exec -it rabbitm…

MATLAB 控制系统设计与仿真 - 27

状态空间的标准型 传递函数和状态空间可以相互转换,接下来会举例如何有传递函数转成状态空间标准型。 对角标准型 当 G(s)可以写成: 即: 根据上图可知: 约当标准型 当 G(s)可以写成: 即: 根据上图…

1.FastAPI简介与安装

文章目录 为什么选择FastAPI?FastAPI支持的功能FastAPI的安装第一个FastAPI应用运行应用 为什么选择FastAPI? python web开发: Django: 适合大型复杂项目;Flask:适合灵活开发,搭建小型项目;FastAPI: 兼具开…

【MyDB】一个仿照MySQL的轮子项目系列文章汇总

迄今所有系列文章内容如下: 代码位于xianghua-2/MYDB: 一个仿MySQL的简易数据库 1 项目环境配置以及整体项目结构 【MyDB】1-MyDB环境配置及项目结构-CSDN博客 2 TransactionManager事务管理模块 【MyDB】2-TransactionManager 事务管理-CSDN博客 3 DataManage…

2025年汽车加气站操作工考试精选题库

汽车加气站操作工题库中题目及答案: 单项选择题 1、按压力容器的设计压力分为( )个压力等级。 A. 3 B. 4 C. 5 答案:B 2、缓冲罐的安装位置在天然气压缩机( )。 A. 前 B. 后 C. 中间 答案&#…

【Unity Bug 随记】使用Rider debug功能时Unity Reload Domain卡死问题

使用Rider debug功能时Unity Reload Domain卡死 检查是否使用unity version control版本控制系统(VCS),使用的话删除这个包,再尝试,如果能正常断点调试,说明确实是VCS的问题。 我和几个网友都是这个原因…

麒麟银河V10服务器RabbitMQ安装

安装步骤 rabbitMQ依赖于erlang的环境,所以需要先安装erlang,erlang跟rabbitMQ是有版本之间的关联关系的,根据对应的版本去安装下载,保证少出问题。 可以通过官网来查看RabbitMQ和erlang之间的版本对应关系 rabbitMQ和erlang之间…

springboot操作redis集群,注意事项

整合redis可查看博文 springboot 整合redis_springboot整合redis csdn-CSDN博客 集群中操作注意事项 1 多键操作失败: 当使用multiGet等需要同时访问多个键的方法时,如果没有使用Hash Tags,这些键可能会被分配到不同的槽中。如果这些槽位于…

优选算法训练篇07--力扣LCR179.查找总价格为目标值的两个商品

目录 1.题目链接:LCR179.查找总价格为目标值的两个商品 2.题目描述: 3.解法一(暴力解法,会超时): 4.解法二(双指针-对撞指针): 1.题目链接:LCR179.查找总价格为目标值的两个商品 2.题目描述: 购物车…

KMP-子串匹配算法-关键点理解

1.理解next[]数组的使用与来历 2.求解next[]数组 一、kmp算法的原理 首先观察暴力解法:假设主串为:abdxxabc,模式串为abxxabd。 暴力解法,就是对主串每个字符作为第一个字符,开始和模式串比较。 比如:从…

Flutter 学习之旅 之 flutter 使用 SQLite(sqflite) 实现简单的数据本地化 保存/获取/移除/判断是否存在 的简单封装

Flutter 学习之旅 之 flutter 使用 SQLite(sqflite) 实现简单的数据本地化 保存/获取/移除/判断是否存在 的简单封装 目录 Flutter 学习之旅 之 flutter 使用 SQLite(sqflite) 实现简单的数据本地化 保存/获取/移除/判断是否存在…

群体智能优化算法-粒子群优化算法(Particle Swarm Optimization, PSO,含Matlab源代码)

摘要(Abstract) 粒子群优化(PSO)是一种基于群体智能的优化算法,受鸟群觅食行为的启发。PSO 通过模拟粒子(个体)在搜索空间中的运动来寻找最优解。每个粒子根据自身的历史最优位置(p…

Redis 在windows下的下载安装与配置

参考链接:https://developer.aliyun.com/article/1395346 下载 Redis 访问 Redis 下载地址:https://github.com/tporadowski/redis/releases 下载 Redis 时,你可以选择 ZIP 包或 MSI 安装: ZIP包:需要手动解压、初始化、配置和…

UE5材质法线强度控制节点FlattenNormal

连法 FlattenNormal内部是这样的 FlattenNormal的作用是用来调整法线强度 连上FlattenNormal后 拉高数值

在 Elasticsearch 中探索基于 NVIDIA 的 GPU 加速向量搜索

作者:来自 Elastic Chris Hegarty 及 Hemant Malik 由 NVIDIA cuVS 提供支持,此次合作旨在为开发者在 Elasticsearch 中的向量搜索提供 GPU 加速。 在 Elastic Engineering 组织内,我们一直致力于优化向量数据库的性能。我们的使命是让 Lucen…

Android 13深度定制:SystemUI状态栏时间居中显示终极实战指南

一、架构设计与技术解析 1. SystemUI状态栏核心布局机制 层级结构 mermaid 复制 graph TDPhoneStatusBarView --> StatusBarContents[status_bar_contents]StatusBarContents --> LeftLayout[status_bar_left_side]StatusBarContents --> ClockLayout[Clock控件]Left…

ArcGIS10.X影像智能下载!迁移ArcGIS Pro批量智能高清影像下载工具至ArcGIS!

上周我们分享了 我写的一个ArcGIS Pro版批量下载高清影像(谷歌、天地图、ESRI等)工具给大家,Deepseek我!写一个ArcGIS Pro批量下载高清影像(谷歌、天地图、ESRI等)工具给大家-CSDN博客文章浏览阅读130次。深…

前端面经分享(25/03/19)

北京一家做协同办公软件出海的公司,技术一面,20k-40k,要求3-5年 详细聊了一下上家公司的项目上家公司的项目是不做了吗,离职原因是什么,你觉得公司的这个产品怎么样在做AI类的业务时,作为前端感觉跟常规业务…