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

如何在Python脚本中根据周六周日调整传入的日期参数?

解决命令行传入日期的周末调整问题

你的代码存在两个核心问题:

  • 错误使用了datetime.datetime.today().weekday(),获取的是当天的星期数,而非你传入的目标日期的星期数
  • 直接对字符串类型的日期做减法运算(date-1),字符串不支持这种数值操作,必须先转为日期对象

以下是修正后的完整代码:

import argparse
from datetime import datetime, timedelta

parser = argparse.ArgumentParser()
parser.add_argument('date', help='传入的日期格式需为YYYY-MM-DD')
args = parser.parse_args()

# 将传入的字符串日期转为datetime对象
try:
    tdate = datetime.strptime(args.date, '%Y-%m-%d')
except ValueError:
    print("错误:日期格式不正确,请使用YYYY-MM-DD格式")
    exit(1)

# 获取传入日期的星期数(0=周一,5=周六,6=周日)
weekno = tdate.weekday()

# 根据星期数调整日期
if weekno == 5:  # 周六
    tdate -= timedelta(days=1)
elif weekno == 6:  # 周日
    tdate -= timedelta(days=2)

# 若需要将调整后的日期转回字符串格式,可使用以下代码
# tdate_str = tdate.strftime('%Y-%m-%d')
# print(tdate_str)

关键说明:

  • 使用datetime.strptime()将传入的字符串日期转为可操作的datetime对象,指定格式%Y-%m-%d确保日期解析正确
  • 通过tdate.weekday()获取传入日期的星期数,而非当天的
  • 用timedelta(days=N)实现日期的加减操作,这是Python处理日期偏移的标准方式
  • 增加了异常捕获,处理用户传入错误日期格式的情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 15:41:16