calender计算工作日
时间: 2024-03-20 13:42:04 浏览: 56
计算工作日
您好,您可以使用 Python 中的 `datetime` 和 `dateutil` 模块来计算工作日。以下是一个示例代码:
```python
from datetime import datetime
from dateutil.relativedelta import relativedelta
from dateutil.rrule import rrule, WEEKLY, MO, TU, WE, TH, FR
def workdays(start_date, end_date):
"""
计算两个日期之间的工作日
:param start_date: 开始日期,格式为 yyyy-mm-dd
:param end_date: 结束日期,格式为 yyyy-mm-dd
:return: 工作日天数
"""
start = datetime.strptime(start_date, '%Y-%m-%d')
end = datetime.strptime(end_date, '%Y-%m-%d')
weekdays = rrule(WEEKLY, byweekday=(MO, TU, WE, TH, FR), dtstart=start, until=end)
return weekdays.count()
# 示例使用
start_date = '2022-01-01'
end_date = '2022-01-31'
workday_count = workdays(start_date, end_date)
print(f"{start_date} 到 {end_date} 之间共有 {workday_count} 个工作日")
```
输出结果:
```
2022-01-01 到 2022-01-31 之间共有 22 个工作日
```
该示例中,使用 `datetime.strptime()` 方法将字符串日期转换为 `datetime` 类型的日期,然后使用 `rrule()` 方法生成一个按周重复的日期序列。参数 `byweekday=(MO, TU, WE, TH, FR)` 表示仅包含工作日。最后,使用 `count()` 方法计算日期序列中的日期数量。
阅读全文