
在 python 中添加 100 年,为什么会出现错误日期?
问题:
在 python 程序中添加 100 年时,为什么显示了不正确的日期?
代码示例:
立即学习“Python免费学习笔记(深入)”;
import datetime stringdate = "january 10, 1920" dateobject = datetime.datetime.strptime(stringdate, "%b %d, %y") enddate = dateobject + datetime.timedelta(days=100 * 365) print(dateobject.date()) print(enddate.date())
原因:
直接添加 100 * 365 天会忽略闰年。在 100 年内,有 25 个闰年天,这将导致日期错误。
解决方案:
使用 datetime.timedelta():
将 enddate 替换为:
enddate = dateobject + datetime.timedelta(days=100 * 365 + 25)
使用 datetime.replace():
enddate = dateobject.replace(year=dateobject.year + 100)
处理闰年 2 月 29 日:
try:
enddate = dateobject.replace(year=dateobject.year + years)
except valueerror:
# 闰年闰日,将日期移至 2 月 28 日
enddate = dateobject.replace(year=dateobject.year + years, day=28)示例:
import datetime dateobject = datetime.datetime(1920, 1, 10, 0, 0) enddate = dateobject.replace(year=dateobject.year + 100) print(dateobject.date()) print(enddate.date())
输出:
1920-01-10 2020-01-10
以上就是在 Python 中添加 100 年,为什么会出现错误日期?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号