Python:下个月的工作日位置

Tia*_*nho 5 python date weekday

给定一个日期,您如何知道该月的工作日位置(例如:该月的第三个星期二)以及如何获得下个月同一工作日的日期(例如:该月的第三个星期二+ 1)?

Sve*_*ach 2

在下面的示例中,d是一个datetime.date对象。

要获取当月内某天的“索引”,请使用

def weekday_index(d):
    return (d.day + 6) // 7
Run Code Online (Sandbox Code Playgroud)

该公式的计算结果与实际日期无关。要获得下个月内具有相同工作日索引的同一工作日的那一天,最简单的方法似乎是

d_next = d + datetime.timedelta(weeks=4)
if weekday_index(d_next) < weekday_index(d):
    d_next += datetime.timedelta(weeks=1)
Run Code Online (Sandbox Code Playgroud)

这利用了这样的事实:您要查找的日期是 4 周或 5 周之后d