>백엔드 개발 >파이썬 튜토리얼 >python에서 Chinese_calendar를 사용하여 마지막 근무일 날짜를 얻는 방법

python에서 Chinese_calendar를 사용하여 마지막 근무일 날짜를 얻는 방법

WBOY
WBOY앞으로
2023-05-18 17:58:061792검색

**기사 발행 기준으로 Chinese_calendar 버전은 1.8.0입니다. 새 버전은 매년 11월쯤 다음 연휴를 위해 업데이트됩니다.

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)

python에서 Chinese_calendar를 사용하여 마지막 근무일 날짜를 얻는 방법

2023년 봄 테스트 중입니다. Festival:

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

python에서 Chinese_calendar를 사용하여 마지막 근무일 날짜를 얻는 방법

Test 2023 Labor Day:

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

python에서 Chinese_calendar를 사용하여 마지막 근무일 날짜를 얻는 방법

Test 2023 National Day:

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

Extension: Python은 특정 근무일 이후의 날짜를 계산합니다

처음에는 직접 작성하고 싶었지만 중국의 공휴일 시간은 정해져 있지 않기 때문에 날짜가 법정 공휴일인지 계속해서 일일이 입력하는 것이 번거로워서 Python에서 Chinese_calendar라는 모듈을 찾았습니다. 작성자가 계속 업데이트해야 합니다

코드와 아이디어는 사실 매우 간단합니다

특정 날짜를 계산해야 합니다. 시작, 이 날짜는 영업일 기준으로 몇 일입니까?

아래 예는 2021년 9월 10일부터 2022년 9월 10일까지의 시간 범위를 사용한다는 것입니다

2021년 9월 10일을 계산하려면 다음 30영업일의 날짜는 무엇입니까

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()

한 가지 주의할 점은 2월의 일수가 윤년과 평년의 일수가 다르다는 것입니다. 당신의 필요에

위 내용은 python에서 Chinese_calendar를 사용하여 마지막 근무일 날짜를 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제