错误:需要一个整数(得到类型元组)

时间:2017-11-09 01:45:52

标签: python class datetime tuples

我坚持从出生日期起返回年龄。我想做的是使用课程从输入的出生日期返回确切的年龄。我目前的代码是:

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())

我还必须分别从输入的名字和姓氏中返回全名,但这已经完成了。 如果详细解释,我们将非常感激。

1 个答案:

答案 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