我坚持从出生日期起返回年龄。我想做的是使用课程从输入的出生日期返回确切的年龄。我目前的代码是:
from datetime import datetime, date
class Person(object):
def __init__(self, first_name, last_name, birth_date):
self.first_name = first_name
self.last_name = last_name
self.birth_date = birth_date
def full_name(self):
return '{} {}'.format(self.first_name, self.last_name)
def age(self):
return date.today() - date(self.birth_date)
std = Person("aaa", 'bbb', (1990, 10, 11))
print(std.age())
我还必须分别从输入的名字和姓氏中返回全名,但这已经完成了。 如果详细解释,我们将非常感激。
答案 0 :(得分:3)
您可以简单地使用:
def age(self):
return date.today() - date(year=self.birth_date[0], month=self.birth_date[1],
day=self.birth_date[2])
它会返回给你:9890, 00:00:00
如果您想计算年龄,最简单的方法是:
def age(self):
from dateutil.relativedelta import relativedelta
return relativedelta(date.today(), date(year=self.birth_date[0],
month=self.birth_date[1],
day=self.birth_date[2])).years
以上内容应该返回给您:27
你也可以这样做:
def age(self):
from dateutil.relativedelta import relativedelta
age = relativedelta(date.today(), date(year=self.birth_date[0],
month=self.birth_date[1],
day=self.birth_date[2]))
return str(age.years) + ' years, ' + str(age.days) + ' days'
以上内容应该返回给您:27 years, 28 days