程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python- 工作/休息/調休日怎麼精准判斷

編輯:Python

python的第三方模塊chinesecalendar,提供了判斷工作日、休息日、節假日的方法。
不僅可以判斷法定節假日,還可以返回節假日的名稱,對調休日也可以做出判斷,十分好用。
具體用法如下:
1、chinesecalendar模塊安裝
進入到本地python安裝的Scripts文件路徑下,
輸入安裝命令:pip install chinesecalendar,回車即可安裝。

注:每一年年底都需更新到最新版本的chinesecalendar,才會支持最新的一年。如上圖安裝的是最新版本,支持2004年-2022年。如果不更新,超過版本支持的年份,將會報錯,如這裡的版本只支持到2022年,超過將會報錯如下:

2、chinesecalendar模塊常見方法及導入

該模塊常用的方法,如下表:

模塊說明is_workday判斷是否為工作日,語法:is_workday(date)is_holiday判斷是否為節假日/休息日,語法:is_holiday(date)is_in_lieu判斷是否為調休日,語法:is_in_lieu(date)get_holiday_detail判斷是否為節假日、節假日名稱,語法:get_holiday_detail(date)返回值:元組,如,(True, ‘Dragon Boat Festival’),Dragon Boat Festival-端午節get_workdays傳入開始日期和結束日期,得到工作日的日期,語法:get_workdays(start_date,end_date)get_holidays傳入開始日期和結束日期,得到休息日的日期,語法:get_holidays(start_date,end_date)

導入該模塊的方法,如,導入is_workday方法

from chinese_calendar import is_workday

3、使用實例

3.1、輸入日期,判斷這一天是工作日or休息日(包含調休日),並且判斷是否為節假日,如果是,輸出節日名稱。

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模塊的用法。
微信關注【一位代碼】,了解更多關於python、mysql相關問題解決辦法。
-end-


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved