我需要确定今天是否是本月的第三个星期四。使用Python实现此目的的有效方法是什么?
答案 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
基本上,如果今天是星期四,现在是第三个星期四,那么今天必须是第三个星期四。