欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python 如何利用chinese_calendar 獲取上一個工作日日期

 更新時間:2023年03月29日 09:43:45   作者:Runaway_pilot  
這篇文章主要介紹了python 利用chinese_calendar 獲取上一個工作日日期,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

**截止文章發(fā)布chinese_calendar版本為1.8.0,大約在每年的11月份更新次年的節(jié)假日新版本

import datetime
from chinese_calendar import is_workday
def get_pervious_work_day(day: datetime):
    """獲取上一個工作日"""
    day = day - datetime.timedelta(days=1)
    if is_workday(day):
        return day
    return get_pervious_work_day(day)

測試周六日:

today = datetime.date.today().replace(day=20)
date = get_pervious_work_day(today)
print(date)

測試2023春節(jié):

today = datetime.date.today().replace(day=28).replace(month=1)
date = get_pervious_work_day(today)
print(date)

測試2023勞動節(jié):

today = datetime.date.today().replace(day=4).replace(month=5)
date = get_pervious_work_day(today)
print(date)

測試2023國慶節(jié):

today = datetime.date.today().replace(day=7).replace(month=10)
date = get_pervious_work_day(today)
print(date)

擴展:Python計算某個工作日后的日期

剛開始想自己寫,但是因為中國的節(jié)假日時間并不是固定的,因此需要自己持續(xù)并手動填寫日期是否是法定節(jié)假日,比較麻煩,所以找到python有一個叫chinese_calendar的模塊,該作者應(yīng)該會持續(xù)更新

代碼和思路其實都很簡單

我的需求是計算某一日期開始,多少個工作日后這個日期是多少

下面的例子,是我用2021年9月10日到2022年9月10日這一年的時間范圍內(nèi)

要計算2021年9月10日之后30個工作日,是什么日期

import chinese_calendar
import datetime
def after_work_day():
    year = 2021
    month = 9
    day = 10
    # after_work_days是設(shè)置多少個工作日
    after_work_days = 30
    next_year = year + 1
    range_time = datetime.datetime(next_year, month, day)
    # 如果一年后的時間超過了模塊規(guī)定的最長時間,那么直接取最新版的最大時間 截止目前(2022.11.30)最新版到2022年末,需要等國家出臺了明年的放假安排之后可能才會更新
    if range_time >= datetime.datetime(2022, 12, 31):
        range_time = datetime.datetime(2022, 12, 31)
    work_days = chinese_calendar.get_workdays(datetime.datetime(year, month, day), range_time)
    count = 0
    for work_day in work_days:
        count += 1
        if count > after_work_days:
            print(work_day)
            break
if __name__ == '__main__':
    after_work_day()

有一個需要注意的點就是二月份的天數(shù),閏年和平年的天數(shù)不一樣,根據(jù)需求考慮進去

到此這篇關(guān)于python 利用chinese_calendar 獲取上一個工作日日期的文章就介紹到這了,更多相關(guān)python 獲取上一個工作日日期內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解用pyecharts Geo實現(xiàn)動態(tài)數(shù)據(jù)熱力圖城市找不到問題解決

    詳解用pyecharts Geo實現(xiàn)動態(tài)數(shù)據(jù)熱力圖城市找不到問題解決

    這篇文章主要介紹了詳解用pyecharts Geo實現(xiàn)動態(tài)數(shù)據(jù)熱力圖城市找不到問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-06-06
  • python腳本設(shè)置系統(tǒng)時間的兩種方法

    python腳本設(shè)置系統(tǒng)時間的兩種方法

    這篇文章主要介紹了python腳本設(shè)置系統(tǒng)時間的兩種方法,其一是調(diào)用socket直接發(fā)送udp包到國家授時中心,其二是調(diào)用ntplib包,感興趣的小伙伴們可以參考一下
    2016-02-02
  • 關(guān)于Python的各種文件操作

    關(guān)于Python的各種文件操作

    這篇文章主要介紹了關(guān)于Python的各種文件操作,適合剛?cè)腴T的小白或者對于文件操作基礎(chǔ)不太牢固的同學,需要的朋友可以參考下
    2023-04-04
  • Python中賦值運算符的含義與使用方法

    Python中賦值運算符的含義與使用方法

    賦值運算符主要用來為變量(或常量)賦值,在使用時,既可以直接用基本賦值運算符“=”將右側(cè)的值賦給左側(cè)的變量,右側(cè)也可以在進行某些運算后再賦值給左側(cè)的變量,下面這篇文章主要給大家介紹了關(guān)于Python中賦值運算符的含義與使用方法的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • python中使用while循環(huán)的實例

    python中使用while循環(huán)的實例

    在本篇內(nèi)容里小編給各位整理的是關(guān)于python中使用while循環(huán)的實例以及相關(guān)知識點,需要的朋友們學習下。
    2019-08-08
  • 基于Python如何使用AIML搭建聊天機器人

    基于Python如何使用AIML搭建聊天機器人

    AIML,全名為Artificial Intelligence Markup Language(人工智能標記語言),是一種創(chuàng)建自然語言軟件代理的XML語言,是由Richard Wallace和世界各地的自由軟件社區(qū)在1995年至2002年發(fā)明的,通過本文給大家介紹基于Python如何使用AIML搭建聊天機器人,需要的朋友一起學習
    2016-01-01
  • 對python 命令的-u參數(shù)詳解

    對python 命令的-u參數(shù)詳解

    今天小編就為大家分享一篇對python 命令的-u參數(shù)詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Pytorch 如何訓練網(wǎng)絡(luò)時調(diào)整學習率

    Pytorch 如何訓練網(wǎng)絡(luò)時調(diào)整學習率

    這篇文章主要介紹了Pytorch 如何訓練網(wǎng)絡(luò)時調(diào)整學習率的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • python兼容VBA的用法詳解

    python兼容VBA的用法詳解

    這篇文章主要介紹了python兼容VBA的用法詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • python切片復制列表的知識點詳解

    python切片復制列表的知識點詳解

    在本篇文章里小編給大家整理的是一篇關(guān)于python切片復制列表的知識點相關(guān)內(nèi)容,有興趣的朋友們可以跟著學習下。
    2021-10-10

最新評論