计算两个日期间工作日数量有三种方法:一、用datetime模块遍历并判断周一至周五,手动排除节假日;二、用pandas的bdate_range生成工作日序列,len()得数量,但需额外处理节假日;三、用workalendar库自动识别中国法定节假日及周末,get_working_days_count直接返回准确结果。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您需要计算两个日期之间的工作日数量,即排除周末和法定节假日的天数,则需采用特定的逻辑来识别非工作日。以下是实现该功能的多种方法:
一、使用Python内置模块配合自定义逻辑
该方法利用datetime模块遍历日期范围,并通过weekday()方法判断每日是否为周一至周五。它不依赖外部库,适合轻量级场景且可灵活排除指定节假日。
1、导入datetime模块:import datetime
2、定义起始日期与结束日期,格式为datetime.date(year, month, day)
3、初始化计数器count = 0
4、使用while循环从起始日期逐日递增至结束日期(含)
5、对每一天调用date.weekday(),若返回值为0~4(对应周一至周五),则count加1
6、循环结束后,count即为工作日总数
二、借助pandas的bdate_range函数
pandas提供bdate_range(business date range)直接生成工作日序列,自动跳过周末;结合len()即可获取数量。该方法简洁高效,但默认不处理法定节假日,需额外传入holidays参数。
1、安装pandas(如未安装):pip install pandas
CodeGeeX 2.21.0是智谱AI推出的AI编程助手版本,对Inline Chat功能进行了重大优化,包括UI设计升级、支持流式输出以提升响应速度,并新增“查看思路”按钮以便理解代码原理。同时,该版本在编辑器中新增CodeLens控件,支持一键“解释”代码或“添加注释”。目前该工具对个人开发者免费开放。
2、导入模块:import pandas as pd
3、设定start和end为字符串格式如'2024-01-01'
4、调用pd.bdate_range(start=start, end=end),获得DatetimeIndex对象
5、使用len()获取其长度,结果即为不含节假日的工作日天数
三、使用workalendar库精确识别节假日
workalendar支持全球多国及中国各省市的法定节假日规则,能自动过滤周末与已知假期,适用于对合规性要求较高的业务场景。
1、安装库:pip install workalendar
2、导入中国日历类:from workalendar.asia import China
3、实例化日历对象:cal = China()
4、调用cal.get_working_days_count(date_from, date_to),其中参数为date类型
5、返回值为严格符合中国法定节假日安排的工作日数量

















