首页 > 编程知识 正文

Python如何判断工作日与节假日

时间:2023-11-20 15:10:20 阅读:292158 作者:XYKP

在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库和自定义函数等实现。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。