Python 工作日计算:计算两个日期之间的工作日

2023-04-01 00:00:00 日期 计算 工作日

要计算两个日期之间的工作日,可以使用Python中的datetime模块和timedelta对象。以下是一个简单的示例代码,可以计算两个日期之间的工作日数量:

import datetime

def workdays(start_date, end_date, holidays=()):
    days = (end_date - start_date).days + 1
    # 计算总共的天数(包括起始和结束日期)

    workdays = sum(1 for day in range(days)
                   if (start_date + datetime.timedelta(day)).weekday() < 5
                   and (start_date + datetime.timedelta(day)) not in holidays)
    # 循环每一天,判断是否是工作日(周一到周五),并且不在假期列表中

    return workdays

该函数接受三个参数:起始日期(start_date)、结束日期(end_date)和一个可选的假期元组(holidays)。假期元组中包含了不计入工作日的日期。

示例用法:

>>> start_date = datetime.date(2023, 3, 1)
>>> end_date = datetime.date(2023, 3, 31)
>>> holidays = [datetime.date(2023, 3, 8), datetime.date(2023, 3, 10)]
>>> workdays(start_date, end_date, holidays)
22

在此示例中,我们计算2023年3月1日至2023年3月31日之间的工作日数量,并将3月8日和3月10日列为假期。结果为22个工作日。

相关文章