溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python如何實(shí)現(xiàn)農(nóng)歷轉(zhuǎn)換

發(fā)布時(shí)間:2022-03-15 10:11:45 來源:億速云 閱讀:275 作者:iii 欄目:開發(fā)技術(shù)

這篇“Python如何實(shí)現(xiàn)農(nóng)歷轉(zhuǎn)換”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Python如何實(shí)現(xiàn)農(nóng)歷轉(zhuǎn)換”文章吧。

    Python如何實(shí)現(xiàn)農(nóng)歷轉(zhuǎn)換

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

    對(duì)于我們處理數(shù)據(jù)來說,并不需要去詳細(xì)研究農(nóng)歷與公歷之間的轉(zhuǎn)換關(guān)系。在Python中,ZhDate庫支持農(nóng)歷-公歷互相轉(zhuǎn)換、日期加減以及全中文日期生成,內(nèi)置了1900-2100年的農(nóng)歷數(shù)據(jù),僅依賴Python內(nèi)置模塊。github.com/CutePandaSh/zhdate

    由于ZhDate屬于Python的第三?開源模塊,因此需要額外安裝、導(dǎo)?后,才能使?。直接在命令?窗?中輸?如下命令:

    pip install zhdate

    詳細(xì)使用方法

    zhdate庫,不用網(wǎng)絡(luò)接口直接本地計(jì)算中國農(nóng)歷,支持農(nóng)歷陽歷互轉(zhuǎn)。

    陽歷與農(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)  # 從陽歷日期轉(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

    Python如何實(shí)現(xiàn)農(nóng)歷轉(zhuǎn)換

    在交互式環(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日分別過兩次農(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ì)象。

    Python如何實(shí)現(xiàn)農(nóng)歷轉(zhuǎn)換

    實(shí)戰(zhàn):計(jì)算節(jié)日距離天數(shù)

    下面通過一個(gè)實(shí)戰(zhàn)項(xiàng)目練習(xí)一下這個(gè)zhdate模塊。

    加入我們想快速地了解今天距離某個(gè)節(jié)日還有多少天?可以使用zhdatedatetime庫搭配解決這個(gè)問題。

    在交互式環(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 天

    以上就是關(guān)于“Python如何實(shí)現(xiàn)農(nóng)歷轉(zhuǎn)換”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI