Python竟然還可以計算農曆!

PHPz
發布: 2023-04-30 09:43:06
轉載
1006 人瀏覽過

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
登入後複製

輸出:

农历2022年1月6日
登入後複製

閏月

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

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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!