我想制造一个年龄计算器,而我只想找到年数,如何根据提供的代码实现这一目标?
import datetime
print('birthday')
birthday=datetime.date(1997,7,1)
print(birthday)
print('today')
current=datetime.date.today()
print(current)
age=(current-birthday)//365
print('age')
print(age)
我希望输出为21年,但实际输出为21天,加上一些意外信息
答案 0 :(得分:2)
当前假设您想将天数除以365。因此输出正确,而不是度量标准。尝试将天数除以365,如下所示:
age = (current-birthday).days // 365
print(age)
您可以使用的另一种方法是使用dateutil
中的relativedelta
:
from dateutil.relativedelta import relativedelta
birthday = datetime.date(1997, 7, 1)
current = datetime.date.today()
rdelta = relativedelta(current, birthday)
print(rdelta.years)
这样做的好处是,您还可以打印月份/天(rdelta.months
/ rdelta.days
)
答案 1 :(得分:2)
from datetime import date
d0 = date(2008, 8, 18)
d1 = date(2017, 9, 26)
delta = d1 - d0
print (delta.days/365.2422)
答案 2 :(得分:1)
您不需要datetime
来计算年龄,只需确定当前日期即可。
import datetime as dt
by, bm, bd = 1997, 7, 1
now = dt.date.today()
age = now.year - by
if (bm, bd) > (now.month, now.day):
age -= 1 # hasn't had birthday this year
print(age)