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

如何用Python正确获取指定日期对应上一周的周一和周日

Python 获取上一周周一、周日的代码修正

问题根因

原代码的计算逻辑实际返回的是当前日期所在周的周一和周日,因此2021年11月28日(周日)运行时得到的是当周的2021-11-22至2021-11-28,仅当当前日期为新一周的周一时,减7天的运算结果刚好匹配上一周的日期,不符合通用场景要求。

修正方案

推荐使用拆分步骤的计算逻辑,避免复杂模运算带来的逻辑错误,可读性和兼容性更强:

import datetime

today = datetime.date.today()
# 计算当前周的周一(weekday方法周一返回0,周日返回6)
current_week_monday = today - datetime.timedelta(days=today.weekday())
# 上周一为当前周一往前推7天
self.monday = (current_week_monday - datetime.timedelta(days=7)).strftime('%Y-%m-%d')
# 上周日为当前周一往前推1天
self.sunday = (current_week_monday - datetime.timedelta(days=1)).strftime('%Y-%m-%d')

测试验证

传入测试日期2021-11-28时,输出结果如下:

Monday: 2021-11-15
Sunday: 2021-11-21

完全符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 21:06:04