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.pswp.cn/diannao/74036.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/74036.shtml
英文地址,請注明出處:http://en.pswp.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類的業務時,作為前端感覺跟常規業務…