在Python中查找每月的第三个星期四



我需要确定今天是否是当月的第三个星期四。使用Python实现这一点的有效方法是什么?

根据@inegm在本文中的回答,您可以使用calendar模块来解决您的问题:

def is_nth_weekday(daynum, nth):
    if date(date.today().year, date.today().month, 1).weekday() == daynum:
        nth = nth - 1
    return date.today() == calendar.Calendar(daynum).monthdatescalendar(
        date.today().year, 
        date.today().month
    )[nth][0]

表达式calendar.Calendar(nth).monthdatescalendar(date.today().year, date.today().month)[daynum][0]返回一个日期时间对象,该对象对应于一周中daynum天的nth出现。在您的情况下,您可能希望呼叫is_nth_weekday(3, 3)(因为从周一开始计算为0,周四为3)。

我会做一些类似的事情:

from datetime import datetime
today = datetime.today()
is_third_thurs = today.weekday() == 3 and today.day >= 15 and today.day <= 21

基本上,如果今天是星期四,而现在成为第三个星期四还不算太晚或太早,那么今天一定是第三个周四。

最新更新