**기사 발행 기준으로 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)
2023년 봄 테스트 중입니다. Festival:
today = datetime.date.today().replace(day=28).replace(month=1) date = get_pervious_work_day(today) print(date)
Test 2023 Labor Day:
today = datetime.date.today().replace(day=4).replace(month=5) date = get_pervious_work_day(today) print(date)
Test 2023 National Day:
today = datetime.date.today().replace(day=7).replace(month=10) date = get_pervious_work_day(today) print(date)
처음에는 직접 작성하고 싶었지만 중국의 공휴일 시간은 정해져 있지 않기 때문에 날짜가 법정 공휴일인지 계속해서 일일이 입력하는 것이 번거로워서 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!