在Python中找到本月的第三个星期四

时间:2014-10-02 17:39:10

标签: python date

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

2 个答案:

答案 0 :(得分:3)

在@ {3}}中关注@ 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]返回与nth星期daynum出现的日期时间对象相对应的日期时间对象。在您的情况下,您需要致电is_nth_weekday(3, 3)(因为星期一为0,星期四为3)。

答案 1 :(得分:1)

我会做类似的事情:

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

基本上,如果今天是星期四,现在是第三个星期四,那么今天必须是第三个星期四。