Python:后续月份的星期几位置

5 投票
4 回答
716 浏览
提问于 2025-04-16 23:23

给定一个日期,怎么知道这个日期在这个月是星期几的位置(比如:这个月的第三个星期二)?还有,怎么找到下个月同样的星期几的日期(比如:下个月的第三个星期二)?

4 个回答

2

可以看看这个叫 dateutil 的东西。

3

看看这个叫做 datetime 的模块。特别是里面的 weekday 方法,它是用来获取一个日期是星期几的。还有 isocalendar 这个方法也可能会对你有帮助。

2

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

如果你想知道这个日期在当前月份中是第几天,可以使用

def weekday_index(d):
    return (d.day + 6) // 7

这个公式不管日期是星期几都能用。要找下个月同样星期几且同样位置的日期,最简单的方法似乎是

d_next = d + datetime.timedelta(weeks=4)
if weekday_index(d_next) < weekday_index(d):
    d_next += datetime.timedelta(weeks=1)

这里利用了你要找的日期距离 d 要么是4周,要么是5周的事实。

撰写回答