ホームページ  >  記事  >  バックエンド開発  >  Pythonでchinese_calendarを使用して最終営業日の日付を取得する方法

Pythonでchinese_calendarを使用して最終営業日の日付を取得する方法

WBOY
WBOY転載
2023-05-18 17:58:061703ブラウズ

**この記事の公開時点での 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 年春節:

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

Pythonでchinese_calendarを使用して最終営業日の日付を取得する方法

テスト 2023 労働者の日:

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

Pythonでchinese_calendarを使用して最終営業日の日付を取得する方法

テスト 2023 建国記念日セクション:

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

拡張機能: 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。