在Python编程中,判断工作日与节假日是非常常见的需求。下面将从多个方面进行详细的阐述。
一、datetime库介绍
datetime是Python中处理日期和时间的标准库。使用datetime库,可以轻松地进行日期和时间之间的转换、计算和格式化。
首先,需要导入datetime库:
import datetime
二、判断国家法定节假日
在Python中,可以使用calendar库来判断国家法定节假日。calendar库中有一个函数isocalendar(),可以返回给定日期的年、周数和星期几。根据国家法定节假日的安排,可以判断出给定日期是否为节假日。
下面是判断2021年元旦、春节、清明节是否为节假日的代码:
import calendar def is_holiday(date): year, week_num, day_num = date.isocalendar() if week_num == 1 and day_num == 1: # 元旦 return True elif week_num == 7: # 春节 return True elif day_num == 6 or day_num == 7: # 清明节 return True else: return False if __name__ == '__main__': date1 = datetime.date(2021, 1, 1) date2 = datetime.date(2021, 2, 14) date3 = datetime.date(2021, 4, 4) print(is_holiday(date1)) # True print(is_holiday(date2)) # True print(is_holiday(date3)) # True
三、判断周末
除了国家法定节假日,周末也是一种常见的休息方式。在Python中,可以通过weekday()函数来判断给定日期是星期几(星期一为0,星期日为6)。如果是星期六或星期日,则为周末。
下面是判断2021年5月份是否为周末的代码:
def is_weekend(date): weekday = date.weekday() if weekday == 5 or weekday == 6: return True else: return False if __name__ == '__main__': for i in range(1, 32): date = datetime.date(2021, 5, i) if is_weekend(date): print(date)
四、判断调休
在国家法定节假日与周末之间,可能会存在调休的情况。调休是指将周末的工作日调整为休息日,或将法定节假日的工作日调整为上班日。
在Python中,可以使用is_holiday()和is_weekend()函数来同时判断是否为节假日和周末,以此判断是否为调休。
下面是判断2021年端午节调休的代码:
if __name__ == '__main__': date1 = datetime.date(2021, 6, 12) # 端午节调休上班 date2 = datetime.date(2021, 6, 13) # 端午节调休休息 print(is_holiday(date1) and not is_weekend(date1)) # True print(not is_holiday(date2) and is_weekend(date2)) # True
五、总结
Python中判断工作日与节假日的方法有多种,主要依靠datetime库、calendar库和自定义函数等实现。