Python 工作日计算:计算两个日期之间的工作日
要计算两个日期之间的工作日,可以使用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个工作日。
相关文章