Python 将日转换为年、月和日

Python 将日转换为年、月和日,python,Python,我知道我可以使用relativedelta来计算日历中两个日期之间的差异。然而,它不能满足我的需要 我必须考虑1年= 365天和/或12个月;1个月=30天 要将3年、2个月、20天转换为天,我只需要这个公式:365x3+30x2+20,等于1175 但是,考虑到天数可能高于或不高于1个月或1年,我如何将天转换为年、月和天?在Python上有我可以使用的方法吗 数学上,我可以把1175除以365,把结果的小数乘以365,把结果除以30,把结果的小数乘以30。但是在Python中我怎么能做到这一点

我知道我可以使用relativedelta来计算日历中两个日期之间的差异。然而,它不能满足我的需要

我必须考虑1年= 365天和/或12个月;1个月=30天

要将3年、2个月、20天转换为天,我只需要这个公式:365x3+30x2+20,等于1175

但是,考虑到天数可能高于或不高于1个月或1年,我如何将天转换为年、月和天?在Python上有我可以使用的方法吗


数学上,我可以把1175除以365,把结果的小数乘以365,把结果除以30,把结果的小数乘以30。但是在Python中我怎么能做到这一点呢?

您可以使用天%365来计算从天算起的年数。

您不必乘以小数,使用模%来计算余数


你试过使用模块吗?是的,但那将使用日历结果,我相信,根据年份和月份的不同,可能会有所不同。如果我在你的代码12y-02m-20d中使用4464天,它将返回12 2 24。结果必须非常精确,因为它将用于计算被判刑人的假释等福利。你能帮我找出毛病吗?如果我得到正确的结果,这正是我需要的。
totalDays = 120

years = totalDays//365
months = (totalDays%365)//30
days = (totalDays%365)%30

print(years,months,days)
0 0 12