Python實(shí)現(xiàn)農(nóng)歷轉(zhuǎn)換教程詳解
前言
最近處理工作任務(wù)的時(shí)候遇到了轉(zhuǎn)換農(nóng)歷的問(wèn)題。一開(kāi)始我打算搜索在線處理的網(wǎng)站或者轉(zhuǎn)換的接口,結(jié)果找到了一個(gè)Python庫(kù)可以直接解決,今天正好同大家分享一下。

農(nóng)歷,是我國(guó)現(xiàn)行的傳統(tǒng)歷法。它是根據(jù)月相的變化周期,每一次月相朔望變化為一個(gè)月,參考太陽(yáng)回歸年為一年的長(zhǎng)度,并加入二十四節(jié)氣與設(shè)置閏月以使平均歷年與回歸年相適應(yīng)。
對(duì)于我們處理數(shù)據(jù)來(lái)說(shuō),并不需要去詳細(xì)研究農(nóng)歷與公歷之間的轉(zhuǎn)換關(guān)系。在Python中,ZhDate庫(kù)支持農(nóng)歷-公歷互相轉(zhuǎn)換、日期加減以及全中文日期生成,內(nèi)置了1900-2100年的農(nóng)歷數(shù)據(jù),僅依賴Python內(nèi)置模塊。github.com/CutePandaSh/zhdate
由于ZhDate屬于Python的第三?開(kāi)源模塊,因此需要額外安裝、導(dǎo)?后,才能使?。直接在命令?窗?中輸?如下命令:
pip?install?zhdate
詳細(xì)使用方法
zhdate庫(kù),不用網(wǎng)絡(luò)接口直接本地計(jì)算中國(guó)農(nóng)歷,支持農(nóng)歷陽(yáng)歷互轉(zhuǎn)。
陽(yáng)歷與農(nóng)歷日期的相互轉(zhuǎn)換
在交互式環(huán)境中輸入如下命令:
from?zhdate?import?ZhDate date1?=?ZhDate(2022,?2,?2)??#?新建農(nóng)歷?2022年二月初二(龍?zhí)ь^)的日期對(duì)象 print(date1)??#?直接返回農(nóng)歷日期字符串d
輸出:
農(nóng)歷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)??#?從陽(yáng)歷日期轉(zhuǎn)換成農(nóng)歷日期對(duì)象 date2
輸出:
農(nóng)歷2022年1月6日
閏月
在交互式環(huán)境中輸入如下命令:
date3?=?ZhDate(2020,?4,?15)??#?新建農(nóng)歷?2020年4月15日 print(date3.to_datetime())
輸出:
2020-05-07 00:00:00

在交互式環(huán)境中輸入如下命令:
date3?=?ZhDate(2020,?4,?15)??#?新建農(nóng)歷?2020年閏4月15日 print(date3.to_datetime())
輸出:
2020-06-06 00:00:00
這一年農(nóng)歷4月15日的同學(xué),可以分別在5月7日和6月6日分別過(guò)兩次農(nóng)歷生日。
其他
中文輸出,在交互式環(huán)境中輸入如下命令:
dt_date4?=?datetime(2022,?3,?4) date4?=?ZhDate.from_datetime(dt_date4) print(date4.chinese())
輸出:
二零二二年二月初二 壬寅年 (虎年)
當(dāng)天的農(nóng)歷日期,在交互式環(huán)境中輸入如下命令:
ZhDate.today()
輸出:
農(nóng)歷2022年2月7日
此外,zhdate模塊也支持加減法。兩個(gè)zhdate對(duì)象相減可以得到兩個(gè)農(nóng)歷日期的差額,同時(shí)加整數(shù)也可以返回相隔天數(shù)以后的新農(nóng)歷對(duì)象。

實(shí)戰(zhàn):計(jì)算節(jié)日距離天數(shù)
下面通過(guò)一個(gè)實(shí)戰(zhàn)項(xiàng)目練習(xí)一下這個(gè)zhdate模塊。
加入我們想快速地了解今天距離某個(gè)節(jié)日還有多少天?可以使用zhdate和datetime庫(kù)搭配解決這個(gè)問(wèn)題。
在交互式環(huán)境中輸入如下命令:
today?=?datetime.now()
data_str?=?today.strftime('%Y-%m-%d')
data_str
輸出:
'2022-03-09'
計(jì)算距離勞動(dòng)節(jié)的天數(shù),在交互式環(huán)境中輸入如下命令:
oneDay?=?datetime(2022,?5,?1)
difference?=?oneDay.toordinal()-today.toordinal()
print(f'今天?{data_str}?距離五一勞動(dòng)節(jié)還有?{difference}?天')
輸出:
今天 2022-03-09 距離五一勞動(dòng)節(jié)還有 53 天
計(jì)算距離中秋節(jié)的天數(shù),在交互式環(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 天
大家有時(shí)間也可以動(dòng)手試一試,測(cè)試一下還距離其他節(jié)日多少天?實(shí)戰(zhàn)時(shí)要注意該節(jié)日是按照公歷統(tǒng)計(jì)還是農(nóng)歷設(shè)置的。
到此這篇關(guān)于Python實(shí)現(xiàn)農(nóng)歷轉(zhuǎn)換教程詳解的文章就介紹到這了,更多相關(guān)Python農(nóng)歷內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python之PyQt按鈕右鍵菜單功能的實(shí)現(xiàn)代碼
這篇文章主要介紹了python PyQt按鈕右鍵菜單功能的實(shí)現(xiàn)代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08
Django REST framework內(nèi)置路由用法
這篇文章主要介紹了Django REST framework內(nèi)置路由用法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
python單例模式原理與創(chuàng)建方法實(shí)例分析
這篇文章主要介紹了python單例模式原理與創(chuàng)建方法,結(jié)合實(shí)例形式分析了Python單例模式的概念、原理、定義、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-10-10
Pytorch四維Tensor轉(zhuǎn)圖片并保存方式(維度順序調(diào)整)
這篇文章主要介紹了Pytorch四維Tensor轉(zhuǎn)圖片并保存方式(維度順序調(diào)整),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12
pytorch部署到j(luò)upyter中的問(wèn)題及解決方案
這篇文章主要介紹了pytorch部署到j(luò)upyter中,在這里需要注意我再輸入的時(shí)候出現(xiàn)了一些無(wú)法定位的提示,但是我的電腦沒(méi)有影響使用jupyter,還是可以使用jupyter并且可以import torch,本文給大家講解的非常詳細(xì),需要的朋友參考下吧2022-05-05

