首頁  >  文章  >  後端開發  >  Python竟然還可以計算農曆!

Python竟然還可以計算農曆!

PHPz
PHPz轉載
2023-04-30 09:43:061193瀏覽

Python竟然還可以計算農曆!

最近處理工作任務的時候遇到了轉換農曆的問題。

Python竟然還可以計算農曆!

農曆,是我國現行的傳統曆法。它是根據月相的變化週期,每一次月相朔望變化為一個月,參考太陽回歸年為一年的長度,並加入二十四節氣與設定閏月以使平均歷年與回歸年相適應[1] 。

對於我們處理資料來說,並不需要去詳細研究農曆與公曆之間的轉換關係。在Python中,ZhDate庫支援農曆-公曆互相轉換、日期加減以及全中文日期生成,內建了1900-2100年的農曆數據,僅依賴Python內建模組。 github.com/CutePandaSh/zhdate

由於ZhDate屬於Python的第三⽅開源模組,因此需要額外安裝、導⼊後,才能使⽤。直接在指令⾏窗⼝中輸⼊如下指令:

pip install zhdate

詳細使用方法

zhdate函式庫,不用網路介面直接本地計算中國農曆,支援農曆陽曆互轉[2]。

陽曆與農曆日期的相互轉換

在互動式環境中輸入以下命令:

from zhdate import ZhDate
date1 = ZhDate(2022, 2, 2)# 新建农历 2022年二月初二(龙抬头)的日期对象
print(date1)# 直接返回农历日期字符串d

輸出:

农历2022年2月2日

在互動式環境中輸入如下指令:

t_date1 = date1.to_datetime()
t_date1

輸出:

datetime.datetime(2022, 3, 4, 0, 0)

在互動式環境中輸入以下指令:

from datetime import datetime
dt_date2 = datetime(2022, 2, 6)
date2 = ZhDate.from_datetime(dt_date2)# 从阳历日期转换成农历日期对象
date2

輸出:

<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">农历2022年1月6日</span><br>

閏月

在互動式環境中輸入以下指令:

date3 = ZhDate(2020, 4, 15)# 新建农历 2020年4月15日
print(date3.to_datetime())

輸出:

2020-05-07 00:00:00

Python竟然還可以計算農曆!

#在互動式環境中輸入以下指令:

date3 = ZhDate(2020, 4, 15)# 新建农历 2020年闰4月15日
print(date3.to_datetime())

輸出:

2020-06-06 00:00:00

這一年農曆4月15日的同學,可以分別在5月7日和6月6日分別過兩次農曆生日。

其他

中文輸出,在互動式環境中輸入以下指令:

dt_date4 = datetime(2022, 3, 4)
date4 = ZhDate.from_datetime(dt_date4)
print(date4.chinese())

輸出:

二零二二年二月初二 壬寅年 (虎年)

當天的農曆日期,在互動式環境中輸入如下指令:

ZhDate.today()

輸出:

农历2022年2月7日

此外,zhdate模組也支援加減法。兩個zhdate物件相減可以得到兩個農曆日期的差額,同時加整數也可以傳回相隔天數以後的新農曆物件。

Python竟然還可以計算農曆!

實戰:計算節日距離天數

下面透過一個實戰項目練習這個zhdate模組。

加入我們想快速地了解今天距離某個節日還有多少天?可以使用zhdate和datetime庫搭配來解決這個問題。

Python竟然還可以計算農曆!

在互動式環境中輸入以下指令:

today = datetime.now()
data_str = today.strftime('%Y-%m-%d')
data_str

#輸出:

'2022-03-09'

計算距離勞動節的天數,在互動式環境中輸入下列指令:

oneDay = datetime(2022, 5, 1)
difference = oneDay.toordinal()-today.toordinal()
print(f'今天 {data_str} 距离五一劳动节还有 {difference} 天')

輸出:

今天 2022-03-09 距离五一劳动节还有 53 天

Python竟然還可以計算農曆!

#計算距離中秋節的天數,在互動式環境中輸入下列指令:

oneDay = ZhDate(2022, 8, 15).to_datetime()
difference = oneDay.toordinal()-today.toordinal()
print(f'今天 {data_str} 距离中秋节还有 {difference} 天')

輸出:

今天 2022-03-09 距离中秋节还有 185 天

大家有時間也可以動手試一試,測試一下還要距離其他節日幾天?實戰時要注意該節日是依照公曆統計還是農曆設定的。

以上是Python竟然還可以計算農曆!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除