You need to enable JavaScript to run this app. Python给date对象添加天数报错?LSTM股价预测日期处理
优惠活动
大模型
产品
解决方案
定价
更多

Python给date对象添加天数报错?LSTM股价预测日期处理

核心代码问题排查
  • 导入缺失:仅从datetime模块导入了datetime类,未导入同模块下的timedelta类,直接通过datetime.timedelta调用会触发type object 'datetime.datetime' has no attribute 'timedelta'报错。
  • 变量名不匹配:计算时定义了whole_days、left_days变量,后续使用时错写为whole_time、left_time,会触发NameError变量未定义的报错。
  • 间隔计算逻辑错误:原代码用date1.days计算占比基数,该属性是日期在当年的序数,不是两个输入日期的实际间隔,会导致后续总天数计算完全偏离预期。
修正后可直接运行的实现代码
# 补充导入timedelta类
from datetime import datetime, timedelta

# 解析输入的两个日期字符串,得到date对象
data1 = datetime.strptime(data1input, '%Y%m%d').date()
data2 = datetime.strptime(data2input, '%Y%m%d').date()

# 计算两个日期的实际间隔天数(对应当前已知的占总周期80%的部分)
known_interval = abs((data2 - data1).days)
# 推导完整周期总天数
whole_days = round(known_interval * 100 / 80)
# 计算剩余20%对应的天数
left_days = round(whole_days * 0.2)
# 将剩余天数叠加到data2上,得到最终预测目标日期
target_date = data2 + timedelta(days=left_days)
注意事项
  • 如果不想单独导入timedelta类,也可以修改导入方式为import datetime,后续调用时写全路径datetime.timedelta(days=left_days),但这种写法容易和同模块下的datetime类混淆,更推荐单独导入需要的类。
  • 计算日期间隔时,两个date对象相减得到的是timedelta对象,通过取其.days属性得到的间隔值才是两个日期的真实差值,不要误用date对象自带的.days年序属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.28 07:24:05