我正在尝试制作Superbowl box游戏生成器。作为一项功能,我想告诉用户超级碗是那一年。
超级碗总是2月的第一个星期日。我知道如何获取是否是星期日(import datetime today= datetime.date.today()
),但是我希望程序几乎可以反向运行,在这里我输入6(Python中星期日的整数),并且程序返回星期日的日期掉下来。
类似这样的东西:
date = datetime.date.toDate(day, month, year, which_week)
我希望它能在2月3日输出(以今年为例。
答案 0 :(得分:2)
一个想法是计算给定月份第一天的工作日。然后在指定的工作日添加计算出的天数。对于2019年2月,第3个是第一个星期日:
from datetime import date, timedelta
def get_date(month, year, day_num):
"""Get date of first specified day given month and year."""
first_date = date(year, month, 1)
first_day = first_date.weekday()
day_inc = day_num + (7 if first_day > day_num else 0) - first_day
return first_date + timedelta(days=day_inc)
date = get_date(2, 2019, 6) # 6 represents Sunday
# datetime.date(2019, 2, 3)