如何使用Python判断日期是否在指定范围并计算梦幻橄榄球比赛周数
优化实现方案
核心逻辑利用比赛周固定周期规则,仅需配置少量赛季参数即可适配任意赛季,无需逐周手动录入起止时间,和你原有代码的返回结果完全兼容。
import datetime # 仅需每年赛季更新时修改这三个配置参数即可 SEASON_WEEK1_START = datetime.date(2021, 9, 9) # 赛季首周开始日期 SEASON_WEEK1_END = datetime.date(2021, 9, 13) # 赛季首周结束日期(适配首周可能不是完整7天的情况) SEASON_TOTAL_WEEKS = 16 # 赛季总比赛周数 def get_current_week(): current_date = datetime.datetime.now().date() # 赛季未开始 if current_date < SEASON_WEEK1_START: return 0 # 匹配首周范围 if SEASON_WEEK1_START <= current_date <= SEASON_WEEK1_END: return 1 # 从第二周开始每7天为一个完整比赛周,自动计算周数 delta_days = (current_date - SEASON_WEEK1_END).days current_week = delta_days // 7 + 2 return min(current_week, SEASON_TOTAL_WEEKS)
方案优势
- 完全适配梦幻橄榄球比赛周规则:首周之后的所有比赛周均为周二开始、下周一结束的7天周期,无需手动维护后续每个周的起止时间
- 赛季更新时仅需修改3个配置变量,避免了逐周录入32个日期的重复劳动和手误风险
- 代码量比原实现减少80%,排查问题、调整逻辑都更简单,如果遇到特殊调整的周次,额外加单个判断分支即可,不需要改动整体逻辑。
内容的提问来源于stack exchange,提问作者derektgardner
相关产品推荐
相关产品推荐

