**この記事の公開時点での 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 年春節:
today = datetime.date.today().replace(day=28).replace(month=1) date = get_pervious_work_day(today) print(date)
テスト 2023 労働者の日:
today = datetime.date.today().replace(day=4).replace(month=5) date = get_pervious_work_day(today) print(date)
テスト 2023 建国記念日セクション:
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 中国語 Web サイトの他の関連記事を参照してください。