Python實現農歷轉換教程詳解
前言
最近處理工作任務的時候遇到了轉換農歷的問題。一開始我打算搜索在線處理的網站或者轉換的接口,結果找到了一個Python庫可以直接解決,今天正好同大家分享一下。
農歷,是我國現行的傳統歷法。它是根據月相的變化周期,每一次月相朔望變化為一個月,參考太陽回歸年為一年的長度,并加入二十四節(jié)氣與設置閏月以使平均歷年與回歸年相適應。
對于我們處理數據來說,并不需要去詳細研究農歷與公歷之間的轉換關系。在Python中,ZhDate
庫支持農歷-公歷互相轉換、日期加減以及全中文日期生成,內置了1900-2100年的農歷數據,僅依賴Python內置模塊。github.com/CutePandaSh/zhdate
由于ZhDate屬于Python的第三?開源模塊,因此需要額外安裝、導?后,才能使?。直接在命令?窗?中輸?如下命令:
pip?install?zhdate
詳細使用方法
zhdate
庫,不用網絡接口直接本地計算中國農歷,支持農歷陽歷互轉。
陽歷與農歷日期的相互轉換
在交互式環(huán)境中輸入如下命令:
from?zhdate?import?ZhDate date1?=?ZhDate(2022,?2,?2)??#?新建農歷?2022年二月初二(龍?zhí)ь^)的日期對象 print(date1)??#?直接返回農歷日期字符串d
輸出:
農歷2022年2月2日
在交互式環(huán)境中輸入如下命令:
t_date1?=?date1.to_datetime() t_date1
輸出:
datetime.datetime(2022, 3, 4, 0, 0)
在交互式環(huán)境中輸入如下命令:
from?datetime?import?datetime dt_date2?=?datetime(2022,?2,?6) date2?=?ZhDate.from_datetime(dt_date2)??#?從陽歷日期轉換成農歷日期對象 date2
輸出:
農歷2022年1月6日
閏月
在交互式環(huán)境中輸入如下命令:
date3?=?ZhDate(2020,?4,?15)??#?新建農歷?2020年4月15日 print(date3.to_datetime())
輸出:
2020-05-07 00:00:00
在交互式環(huán)境中輸入如下命令:
date3?=?ZhDate(2020,?4,?15)??#?新建農歷?2020年閏4月15日 print(date3.to_datetime())
輸出:
2020-06-06 00:00:00
這一年農歷4月15日的同學,可以分別在5月7日和6月6日分別過兩次農歷生日。
其他
中文輸出,在交互式環(huán)境中輸入如下命令:
dt_date4?=?datetime(2022,?3,?4) date4?=?ZhDate.from_datetime(dt_date4) print(date4.chinese())
輸出:
二零二二年二月初二 壬寅年 (虎年)
當天的農歷日期,在交互式環(huán)境中輸入如下命令:
ZhDate.today()
輸出:
農歷2022年2月7日
此外,zhdate模塊也支持加減法。兩個zhdate對象相減可以得到兩個農歷日期的差額,同時加整數也可以返回相隔天數以后的新農歷對象。
實戰(zhàn):計算節(jié)日距離天數
下面通過一個實戰(zhàn)項目練習一下這個zhdate模塊。
加入我們想快速地了解今天距離某個節(jié)日還有多少天?可以使用zhdate
和datetime
庫搭配解決這個問題。
在交互式環(huán)境中輸入如下命令:
today?=?datetime.now() data_str?=?today.strftime('%Y-%m-%d') data_str
輸出:
'2022-03-09'
計算距離勞動節(jié)的天數,在交互式環(huán)境中輸入如下命令:
oneDay?=?datetime(2022,?5,?1) difference?=?oneDay.toordinal()-today.toordinal() print(f'今天?{data_str}?距離五一勞動節(jié)還有?{difference}?天')
輸出:
今天 2022-03-09 距離五一勞動節(jié)還有 53 天
計算距離中秋節(jié)的天數,在交互式環(huán)境中輸入如下命令:
oneDay?=?ZhDate(2022,?8,?15).to_datetime() difference?=?oneDay.toordinal()-today.toordinal() print(f'今天?{data_str}?距離中秋節(jié)還有?{difference}?天')
輸出:
今天 2022-03-09 距離中秋節(jié)還有 185 天
大家有時間也可以動手試一試,測試一下還距離其他節(jié)日多少天?實戰(zhàn)時要注意該節(jié)日是按照公歷統計還是農歷設置的。
到此這篇關于Python實現農歷轉換教程詳解的文章就介紹到這了,更多相關Python農歷內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Pytorch四維Tensor轉圖片并保存方式(維度順序調整)
這篇文章主要介紹了Pytorch四維Tensor轉圖片并保存方式(維度順序調整),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12