Comment utiliser Chinese_calendar pour obtenir la date du dernier jour ouvrable en python

WBOY
Libérer: 2023-05-18 17:58:06
avant
1751 Les gens l'ont consulté

**La version Chinese_calendar est la 1.8.0 à compter de la sortie de l'article. La nouvelle version sera mise à jour vers novembre de chaque année pour les vacances de l'année suivante

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)
Copier après la connexion

Tests les samedis et dimanches :

today = datetime.date.today().replace(day=20)
date = get_pervious_work_day(today)
print(date)
Copier après la connexion

Comment utiliser Chinese_calendar pour obtenir la date du dernier jour ouvrable en python

Tests printemps 2023. Festival :

today = datetime.date.today().replace(day=28).replace(month=1)
date = get_pervious_work_day(today)
print(date)
Copier après la connexion

Comment utiliser Chinese_calendar pour obtenir la date du dernier jour ouvrable en python

Test 2023 Fête du Travail :

today = datetime.date.today().replace(day=4).replace(month=5)
date = get_pervious_work_day(today)
print(date)
Copier après la connexion

Comment utiliser Chinese_calendar pour obtenir la date du dernier jour ouvrable en python

Test 2023 Fête nationale :

today = datetime.date.today().replace(day=7).replace(month=10)
date = get_pervious_work_day(today)
print(date)
Copier après la connexion

Extension : Python calcule la date après un certain jour ouvrable

Je voulais l'écrire moi-même au début, mais parce que l'heure des vacances en Chine n'est pas fixe, il est donc difficile de continuer et de renseigner manuellement si la date est un jour férié, j'ai donc trouvé un module en python appelé Chinese_calendar L'auteur devrait continuer à le mettre à jour

Le code et. les idées sont en fait très simples

Mon besoin est de calculer une certaine date de début, combien de jours ouvrables plus tard cette date sera-t-elle

L'exemple ci-dessous est que j'utilise la plage horaire du 10 septembre 2021 au 10 septembre 2022 pour calculer le 10 septembre 2021 Quelles sont les dates des 30 prochains jours ouvrables

import chinese_calendar
import datetime
def after_work_day():
    year = 2021
    month = 9
    day = 10
    # after_work_days是设置多少个工作日
    after_work_days = 30
    next_year = year + 1
    range_time = datetime.datetime(next_year, month, day)
    # 如果一年后的时间超过了模块规定的最长时间,那么直接取最新版的最大时间 截止目前(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()
Copier après la connexion

Une chose à noter est le nombre de jours en février. Le nombre de jours dans les années bissextiles et les années plates est différent. vos besoins

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal