python - 在 Python 上使用 datetime 逐周获取日期
问题描述
我需要一种方法,给定使用 datetime.now() 的日期,在 for 循环中生成以下日期。我试过这样做:
from datetime import datetime, timedelta, date
cont = 1
for cont in range(1, 50):
time_now = datetime.now()
time_ed = time_now.replace(day = cont)
print(time_ed)
但是一旦我到达本月的最后一天,它就会崩溃并显示以下内容:
ValueError: day is out of range for month
有没有一种方法,当到达一个月的最后一天时,传递到下一天并继续这样做?
解决方案
这应该可以解决问题:
from datetime import datetime, timedelta
time_now = datetime.now()
for cont in range(1, 50):
time_ed = time_now + timedelta(days=cont)
print(time_ed)
与您的原始代码相比,有几件事发生了变化:
- 反正不需要,
cont = 1
因为它是在for
循环中定义的。 time_now
在循环之外定义,for
因此不需要在每次迭代时重新计算。- 我不只是替换
time_now
对象上的日期,而是在每次迭代中创建了一个新timedelta
对象,其中包含您想要的天数以添加到time_now
.
推荐阅读
- tensorboard - 如何在张量板上显示数值
- plotly-dash - 根据特定条件对散点图点进行不同的着色
- azure-cdn - Azure CDN 响应奇怪的结果
- android - 在BarChart MPAndroidChart中垂直旋转值文本
- c# - 使用 LDAP(在 c# 中)从 AD 绑定用户详细信息需要时间 --13 分钟,大约 7500 条记录。需要代码建议以提高性能
- javascript - 在循环内仅显示一次该项目
- three.js - 未捕获(承诺中)类型错误:无法读取未定义的属性“几何”
- ios - 如果用户在 iOS swift 中拒绝位置权限,如何手动访问用户位置
- javascript - 画布 - 刷新不像我预期的那样工作
- ruby - Minitest 中不可见的模块类描述