python - 如何正确设置返回python中年份差异的函数?
问题描述
我正在尝试编写一个函数,该函数在给定特定日期格式的情况下返回我的年差,即"01/%m/%Y"
:
这是我正在使用的代码:
import datetime as datetime
###################### function to return difference in years ####################
def years_between(start_year, end_year):
start_year = datetime.strptime(start_year, "01/%m/%Y")
end_year = datetime.strptime(end_year, "01/%m/%Y")
return abs((end_year - start_year).years)
测试时它返回:
years_between("01/10/1900", "01/10/2000")
AttributeError: 'datetime.timedelta' object has no attribute 'years'
预期的函数输出将是一个整数,在上述情况下将是100
有没有其他方法可以纠正这个功能?
解决方案
from datetime import datetime
def years_between(start_year, end_year):
start_year = datetime.strptime(start_year, "%d/%m/%Y")
end_year = datetime.strptime(end_year, "%d/%m/%Y")
return abs(end_year.year - start_year.year)
print(years_between("01/10/1901", "01/10/2000"))
推荐阅读
- vb.net - 如何在特定位置/索引处将文本行附加到 Richtextbox 中?
- windows - kerberos TGT 解释
- spring - 是否可以在 k8s configMaps 中进行参数替换?
- python-3.x - 如何从 np.where() 而不是 True/False 获取单元格的值
- r - ggplot2 图例标题不尊重 Google 字体的粗体
- reactjs - 如何在 Ant Design Form 中使用 async onFinish 方法
- firebase - Firebase SwiftUI and Firebase Auth - not reading user ID?
- gradle - Gradle 如何自动更新依赖的版本?
- scala - Spark - 从数组对象中选择多列
- debugging - 通过 UART 将缓冲区作为 USB 数据发送到 VCP 时无法访问内存位置