自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python竟然還可以計(jì)算農(nóng)歷!

開(kāi)發(fā) 后端
一開(kāi)始我打算搜索在線處理的網(wǎng)站或者轉(zhuǎn)換的接口,結(jié)果找到了一個(gè)Python庫(kù)可以直接解決,今天正好同大家分享一下。

最近處理工作任務(wù)的時(shí)候遇到了轉(zhuǎn)換農(nóng)歷的問(wèn)題。

農(nóng)歷,是我國(guó)現(xiàn)行的傳統(tǒng)歷法。它是根據(jù)月相的變化周期,每一次月相朔望變化為一個(gè)月,參考太陽(yáng)回歸年為一年的長(zhǎng)度,并加入二十四節(jié)氣與設(shè)置閏月以使平均歷年與回歸年相適應(yīng)[1]。

對(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)[2]。

陽(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è)置的。

責(zé)任編輯:龐桂玉 來(lái)源: 菜鳥(niǎo)學(xué)Python
相關(guān)推薦

2019-01-29 10:00:59

GitHub開(kāi)源搜索

2022-10-09 10:02:09

Python3.12

2021-03-03 08:05:53

C++項(xiàng)目函數(shù)

2022-07-29 16:50:30

網(wǎng)絡(luò)帶寬

2021-02-01 13:35:28

微信Python技巧

2022-12-06 17:30:04

2020-11-04 07:36:06

Redis二進(jìn)制數(shù)據(jù)庫(kù)

2022-07-30 23:45:09

內(nèi)存泄漏檢測(cè)工具工具

2018-08-08 14:25:17

2022-05-17 07:26:33

動(dòng)畫(huà)CSS前端

2023-07-03 16:49:47

5G

2021-11-10 06:38:01

Python鏈?zhǔn)?/a>操作

2011-10-14 10:18:16

信息泄漏

2012-10-12 10:13:26

eclips代碼編寫Editplus

2021-06-02 11:10:09

PythonWeb可視化

2016-01-14 11:34:19

2022-04-11 19:55:26

函數(shù)類型函數(shù)重載

2021-03-03 06:39:05

Nodejs前端開(kāi)發(fā)

2013-09-18 10:44:01

搜狗輸入法詞語(yǔ)

2019-02-26 14:43:50

http狀態(tài)碼前端
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)