如何在python中将天数转换为年和月?

时间:2015-08-18 22:38:43

标签: python

如何在python中将天数转换为年,月和日? 例如:如果有人是5,538天。如何通过这样的年,月和日来显示:15岁2个月和1天

这是为了获取用户的输入

print "Please enter your birthday"
bd_year = int(raw_input("Year: "))
bd_month = int(raw_input("Month: "))
bd_day = int(raw_input("Day: "))

from datetime import date
now = date.today()

birthdate = date(int(bd_year), int(bd_month), int(bd_day))
age_in_days = now - birthdate

print "Your age is %s" % age_in_days

现在我需要计算这个人的生日年,月,日

2 个答案:

答案 0 :(得分:10)

如何使用dateutil library中的dateutil.relativedelta.relativedelta?例如:

from dateutil.relativedelta import relativedelta
rdelta = relativedelta(now, birthdate)
print 'Age in years - ', rdelta.years
print 'Age in months - ', rdelta.months
print 'Age in days - ', rdelta.days

答案 1 :(得分:3)

在这里使用dateutil.relativedelta.relativedelta非常有效:除了使用.months.days

因为rdelta.months为您提供了使用整年后的剩余月份,所以没有给您实际的月份差异。 如果需要查看月份之间的差异,则应将年份转换为月份。

def deltamonths(x):
       rdelta = relativedelta(now, birthdate)
       return rdelta.years*12 + rdelta.months