python - 在循环python中将deltatime添加到每个日期
问题描述
嘿伙计们,我试图将时间增量添加到循环范围内的每个日期,但最终只将时间增量添加到循环中的第一个日期,代码如下:
import datatime
import time
from datetime import timedelta, date
td= datetime.timedelta(days=7)
for d in daterange(date(2019, 1, 1,), date(2019, 1, 5)):
print(d+td)
>>>2019-01-08
>>>2019-01-09
>>>2019-01-10
>>>2019-01-11
为什么添加不适用于该范围内的日期,解决方案是什么?
解决方案
虽然很难说出您的原始代码有什么问题,但您是否正在寻找类似的东西,使用给定的步骤迭代日期/日期时间?
import datetime
def date_range(start, end, step: datetime.timedelta):
while start < end:
yield start
start += step
for d in date_range(
start=datetime.date(2019, 1, 1),
end=datetime.date(2019, 2, 9),
step=datetime.timedelta(days=7),
):
print(d)
输出
2019-01-01
2019-01-08
2019-01-15
2019-01-22
2019-01-29
2019-02-05
推荐阅读
- python - 使用 firwin 应用带通滤波器
- docker - make: *** 没有规则来制作目标'build-x86_64'。停止
- java - ActiveMQ Artemis Java JPMS(Java 平台模块系统)是否兼容?
- javascript - Javascript - 如何从动态字符串内容中转义双引号,意外标识符错误
- reactjs - 如何在反应中更新父组件
- laravel - cpanel上的laravel上传项目未运行
- c - c 程序在代码块上运行但不在 clion 上运行,这怎么可能?
- angular - 安装 Angular CLI [问题:错误消息]
- eclipse - 编辑框/Nodeclipse EditBox 插件不再适用于 Eclipse 4.18.0
- css - 带标题的图像 - “图形”框不适应图像大小,更改图像大小,长标题不换行,