我需要确定今天是否是当月的第三个星期四。使用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
基本上,如果今天是星期四,而现在成为第三个星期四还不算太晚或太早,那么今天一定是第三个周四。