Python - 仕事/休憩/休息日を正確に判断する方法

Python のサードパーティ モジュール chinesecalendar は、稼働日、休日、休日を決定する方法を提供します。
法定休日の判定だけでなく、祝日名を返したり、祝日の入れ替え判定もできて非常に使いやすいです。1. chinesecalendar モジュールをインストールする
ローカルPython インストールのスクリプト ファイル パスに移動し、インストール コマンド pip install chinesecalendar を入力し、Enter キーを押してインストールします。注: 最新の年をサポートするには、毎年末に chinesecalendar の最新バージョンに更新する必要があります。上記のようにインストールされた最新バージョンは、2004 ~ 2022 をサポートします。更新せず、バージョンでサポートされる年を超えると、エラーが報告されます。たとえば、ここでのバージョンは 2022 年までのみサポートされます。サポートされる年を超えると、次のようにエラーが報告されます。



ここに画像の説明を挿入します

ここに画像の説明を挿入します

2. 一般的なメソッドと chinesecalendar モジュールのインポート

このモジュールで一般的に使用されるメソッドは次のとおりです。

モジュール 説明する
is_workday 営業日かどうかを判断します。構文: is_workday(date)
は_休日 休日/休息日かどうかを判断します。構文: is_holiday(date)
代わりに 休日かどうかを判断します。構文: is_in_lieu(date)
get_holiday_detail 休日かどうかと休日の名前を判断する 構文: get_holiday_detail(date) 戻り値: (True, '端午節')、端午節-端午節などのタプル
get_workdays 開始日と終了日を渡して稼働日の日付を取得します。構文: get_workdays (start_date, end_date)
取得_休日 開始日と終了日を渡して休日の日付を取得します。構文: get_holidays(start_date,end_date)

このモジュールのメソッドをインポートします。たとえば、is_workday メソッドをインポートします。

from chinese_calendar import is_workday

3. 使用例

3.1. 日付を入力し、その日が稼働日か休日(休業日を含む)か、休日かどうかを判断し、休日の場合は休日名を出力します。

import datetime
from chinese_calendar import is_workday, is_holiday, is_in_lieu, get_holiday_detail

while True:
    time1 = input('请输入XXXX-XX-XX格式的日期:')
    time2 = datetime.datetime.strptime(time1, '%Y-%m-%d')
    if is_workday(time2):
        print(time1+":是工作日")
    if is_in_lieu(time2):
        print(time1+":是调休日")
    if is_holiday(time2):
        print(time1 + ":是休息日")
        if get_holiday_detail(time2)[1] is not None:
            print('节日名:'+get_holiday_detail(time2)[1])

ここに画像の説明を挿入します
3.2. 営業日の日付である特定の時間間隔を印刷します。
たとえば、営業日の日付である 2022 年 5 月 1 日から 2022 年 5 月 31 日を印刷します。

from datetime import datetime, date
from chinese_calendar import get_workdays
# 输出2022.5.1-2022.5.31的工作日
work_day = get_workdays(datetime(2022, 5, 1), datetime(2022, 5, 31))
work_day = [date.strftime(i, '%Y-%m-%d') for i in work_day]
print(work_day)

ここに画像の説明を挿入します
3.3. 一定の時間間隔を休日の日付として印刷します。
たとえば、2022 年 5 月 1 日から 2022 年 5 月 31 日を休日の日付として印刷します。

from datetime import datetime,date
from chinese_calendar import get_holidays
# 输出2022.5.1-2022.5.31d的节假日
hol_day = get_holidays(datetime(2022, 5, 1), datetime(2022, 5, 31))
hol_day = [date.strftime(i, '%Y-%m-%d') for i in hol_day]
print(hol_day)

ここに画像の説明を挿入します
注: datetime モジュールは上記のコードでも使用されており、主に文字列と時刻形式のデータを変換するために使用されます。

以上が chinesecalendar モジュールの使い方です。
WeChat で [One Code] をフォローすると、Python および mysql 関連の問題の解決策について詳しく知ることができます。
-終わり-

おすすめ

転載: blog.csdn.net/LHJCSDNYL/article/details/126130946