<h2>一般答复</h2>
<p>最好坚持使用datetime和timedelta,因为这可以处理所有的边缘情况,如年份变化、有53周的年份等</p>
<p>因此,找出下周的数字,并将你想要检查的周数与之进行比较</p>
<pre><code>import datetime
# Date to check in date format:
check_date = datetime.datetime.strptime("2021-09-08", "%Y-%d-%m").date()
# Current week number:
curr_week = datetime.date.today().strftime("%V")
# number of next week
next_week = (datetime.date.today()+datetime.timedelta(weeks=1)).strftime("%V")
# number of the week after that
week_after_next_week = (datetime.date.today()+datetime.timedelta(weeks=2)).strftime("%V")
# Compare week numbers of next weeks to the week number of the date to check:
if next_week == check_date.strftime("%V"):
# Date is within next week, put code here
pass
elif week_after_next_week == check_date.strftime("%V"):
# Date is the week after next week, put code here
pass
</code></pre>
<h2>旧答案</h2>
<p>这会把年份的变化搞得一团糟,而模运算并不能解决这个问题,因为有53周的年份</p>
<p>您可以通过将周数转换为整数来比较周数。您不需要创建下周内所有日期的列表</p>
<pre><code>import datetime
# Date to check in date format:
check_date = datetime.datetime.strptime("2021-07-08", "%Y-%d-%m").date()
# Current week number, make it modulo so that the last week is week 0:
curr_week = int(datetime.date.today().strftime("%V"))
# Compare week numbers:
if curr_week == (int(check_date.strftime("%V"))-1):
# Date is within next week, put code here
pass
elif curr_week == (int(check_date.strftime("%V"))-2):
# Date is the week after next week, put code here
pass
</code></pre>