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

如何根据给定任意周内日期获取对应周周一到周日的日期范围

通用实现方案

我们可以借助Python标准库datetime实现该需求,核心逻辑是通过输入日期的周偏移量计算当周周一、周日的日期:

  • 首先将输入的字符串格式日期转换为datetime对象
  • 调用weekday()方法获取当前日期对应的周偏移值(周一为0,周日为6)
  • 用当前日期减去偏移天数得到当周周一的日期,再加6天得到当周周日的日期
  • 最后将两个日期转换回%Y-%m-%d格式的字符串返回
from datetime import datetime, timedelta

def returnDateRange(date_str):
    # 将输入字符串转换为datetime对象
    input_date = datetime.strptime(date_str, "%Y-%m-%d")
    # 计算当周周一日期
    monday = input_date - timedelta(days=input_date.weekday())
    # 计算当周周日日期
    sunday = monday + timedelta(days=6)
    # 转换为要求格式返回
    return [monday.strftime("%Y-%m-%d"), sunday.strftime("%Y-%m-%d")]

功能测试

# 测试输入为周一
print(returnDateRange("2021-11-22")) 
# 输出:['2021-11-22', '2021-11-28']

# 测试输入为同周周四
print(returnDateRange("2021-11-25"))
# 输出:['2021-11-22', '2021-11-28']

# 测试输入为同周周日
print(returnDateRange("2021-11-28"))
# 输出:['2021-11-22', '2021-11-28']

该实现会自动处理跨月、跨年的日期计算场景,无需额外做边界适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 23:54:06