You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中按周数获取以周日为一周首日的日期范围

Python 根据周数获取以周日为起始的日期范围

代码实现

import datetime

def get_week_date_range(week_input):
    # 解析输入的周数信息
    if isinstance(week_input, str):
        year, week = map(int, week_input.split('-'))
    else:
        # 未指定年份时默认使用当前年份
        year = datetime.datetime.now().year
        week = week_input
    
    # 定位到目标周的周日(一周的第一天)
    # %U:以周日为一周起始的周数(范围00-53),%w=0表示周日
    sunday = datetime.datetime.strptime(f"{year}-{week}-0", "%Y-%U-%w")
    
    # 生成从周日到周六的7天日期列表
    date_range = [
        (sunday + datetime.timedelta(days=i)).strftime("%Y-%m-%d")
        for i in range(7)
    ]
    
    return date_range

使用示例

# 输入年-周格式
print(get_week_date_range("2022-34"))
# 输出: ["2022-08-21","2022-08-22", "2022-08-23","2022-08-24","2022-08-25","2022-08-26","2022-08-27"]

# 输入单独周数(默认当前年份)
print(get_week_date_range(34))
# 若当前年份为2022,输出与上述一致

关键说明

  • 周数定义兼容:使用%U格式处理周数,严格遵循「周日为一周第一天」的要求,与输入示例的周数规则匹配。
  • 自动兼容闰年/月份差异:datetime模块会自动处理闰年的2月29天、不同月份的天数差异等问题,无需额外逻辑判断。
  • 输入灵活性:支持两种输入格式:
    • 字符串格式:"YYYY-WW"(如"2022-34")
    • 数字格式:单独的周数(默认使用当前年份)
  • 边界周处理:自动处理每年的第一周、最后一周的日期跨年度情况(例如2023年第0周的周日为2022年12月25日)。

内容的提问来源于stack exchange,提问作者Adataguy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 03:51:40