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 関連の問題の解決策について詳しく知ることができます。
-終わり-