You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用dateutil.rrule计算两日期工作日并排除指定日期列表的方法

实现方法

exdate参数接受datetime对象组成的列表,你只需要提前把需要排除的日期转为datetime.datetime类型存入列表,再传入rrule的exdate参数即可,示例如下:

import datetime
from dateutil.rrule import *

# 定义需要排除的日期列表,统一转为datetime对象
exclude_dates = [
    datetime.datetime(2021, 5, 1),
    datetime.datetime(2021, 5, 5),
    datetime.datetime(2021, 6, 14)
]

number_weekdays = rrule(
    WEEKLY,
    byweekday=(SU,MO,TU,WE,TH),
    dtstart=datetime.datetime(2021, 5, 1),
    until=datetime.datetime(2021, 6, 30),
    exdate=exclude_dates  # 传入排除日期列表
).count()
  • 如果你的排除日期存储为字符串格式(比如"2021-05-01"),可以用datetime.datetime.strptime(日期字符串, "%Y-%m-%d")批量转换后再存入列表。
  • 即使排除列表中的日期不在你统计的日期范围内、或者本身不属于你设置的工作日范围,也不会报错,rrule会自动过滤无效的排除项。

内容的提问来源于stack exchange,提问作者rafine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 20:54:01