python - 如何以年、月和日计算年龄?
问题描述
我有两对日期数据:
date_pair1 = [datetime.datetime(2021,3,1) , datetime.datetime(2020,2,1)]
date_pair2 = [datetime.datetime(2021,4,1) , datetime.datetime(2021,3,1)]
使用 Python:
delta1 = (date_pair1[0]-date_pair1[1]).days
delta2 = (date_pair2[0]-date_pair2[1]).days
year = 365
month = 30
age1 = f"{delta1//365} year {(delta1%365)//30} month {(delta1%365)%30} day"
age2 = f"{delta2//365} year {(delta2%365)//30} month {(delta2%365)%30} day"
print(age1,"-",age2)
结果:
1 year 0 month 29 day - 0 year 1 month 1 day
使用 Excel:
E5
细胞:1.02.2020
F5
细胞:1.03.2021
E6
细胞:1.03.2021
F6
细胞:1.04.2021
使用DATEDIF
功能:
=CONCAT(DATEDIF(E5,F5,"Y")," year ",DATEDIF(E5,F5,"YM")," month ",DATEDIF(E5,F5,"MD")," day")
=CONCAT(DATEDIF(E6,F6,"Y")," year ",DATEDIF(E6,F6,"YM")," month ",DATEDIF(E6,F6,"MD")," day")
1 year 1 month 0 day - 0 year 1 month 0 day
如何使用 python 在 Excel 中获取结果?
解决方案
使用相对增量
date_pair1 = [datetime.datetime(2021,3,1) , datetime.datetime(2020,2,1)]
date_pair2 = [datetime.datetime(2021,4,1) , datetime.datetime(2021,3,1)]
from dateutil.relativedelta import relativedelta
delta1 = relativedelta(date_pair1[0],date_pair1[1])
delta2 = relativedelta(date_pair2[0],date_pair2[1])
age1 = f"{delta1.years} year {delta1.months} month {delta1.days} day"
age2 = f"{delta2.years} year {delta2.months} month {delta2.days} day"
print(age1,"-",age2)
推荐阅读
- yaml - 如何用一个竹子.yaml 处理多个竹子实例
- spss - 如何在SPSS中保留前导零?
- function - 我在第 16 行遇到错误“image_grabber 未定义错误”
- python - 如果整个数据集的图像可以以较小的部分切片/平铺,然后在特征提取后再次连接?
- c++ - 在值 C++ 中搜索设置/未设置位组合
- liferay - 似乎文档 Liferay 索引没有完全完成
- excel - 显示每月前 5 名销售代表的数据透视表
- javascript - 尝试加载 mapbox 时收到错误消息
- node.js - React Highmaps 从第一个到第二个或第二个到第三个图表
- c# - 从 Azure Blob 存储获取文件大小报告