Python 节假日计算:使用第三方库计算节假日
要使用第三方库在 Python 中计算节假日,你可以使用 python-dateutil 库。这个库提供了一个名为 relativedelta 的工具,可以在日期之间计算差异,例如计算两个日期之间相差的天数或月数。
以下是一个例子,演示如何使用 python-dateutil 库来计算给定日期是否为中国的节假日:
from dateutil.relativedelta import relativedelta import datetime def is_holiday(date): # 判断是否为周末 if date.weekday() >= 5: return True # 判断是否为国家法定节假日 holidays = [ (1, 1), # 元旦 (5, 1), # 劳动节 (10, 1), # 国庆节 ] for holiday in holidays: if date.month == holiday[0] and date.day == holiday[1]: return True # 判断是否为春节 spring_festival_start = datetime.datetime(2023, 1, 31) spring_festival_end = datetime.datetime(2023, 2, 6) if spring_festival_start <= date <= spring_festival_end: return True # 判断是否为清明节 qingming_festival_start = datetime.datetime(2023, 4, 3) qingming_festival_end = datetime.datetime(2023, 4, 5) if qingming_festival_start <= date <= qingming_festival_end: return True # 其他节日自行添加判断条件 return False # 测试 date1 = datetime.date(2023, 3, 25) date2 = datetime.date(2023, 5, 1) delta = relativedelta(date2, date1) for i in range(delta.days + 1): date = date1 + datetime.timedelta(days=i) if is_holiday(date): print(f"{date} 是节假日")
在上述代码中,我们定义了一个名为 is_holiday 的函数,用于判断给定日期是否为中国的节假日。其中,我们首先判断日期是否为周末(即星期六或星期日),如果是,则返回 True;接着判断日期是否为国家法定节假日,如果是,则返回 True;最后,我们添加了两个特定的节日——春节和清明节的判断条件,如果日期在这两个节日期间,也会被认为是节假日。最后,我们使用 relativedelta 工具计算两个日期之间的差异,遍历所有日期并检查它们是否为节假日。如果是,我们就打印出该日期。
相关文章