Python根据输入出生日期计算并打印当前年龄的代码问题
年龄计算问题修复方案
你当前代码中两个日期直接相减得到的是timedelta类型的时间差对象,存储的是两个日期间隔的总天数,无法直接得到实际周岁年龄,按如下逻辑修改即可得到正确年龄:
- 首先用当前年份减去出生年份得到初始年龄值
- 比对当前日期和本年生日的月、日,如果今年生日还没到,将初始年龄减1,即为实际年龄
修正后完整可运行代码
from datetime import date, datetime birth1 = input("Input your date of birth (dd/mm/yyyy):") currentDate = date.today() birth2 = datetime.strptime(birth1, "%d/%m/%Y").date() # 计算实际周岁年龄 age = currentDate.year - birth2.year if (currentDate.month, currentDate.day) < (birth2.month, birth2.day): age -= 1 print(age, "years old")
提示:上述逻辑计算的是通用周岁年龄,自动规避了未到生日年龄多算1岁的问题,输入符合dd/mm/yyyy格式的出生日期即可正常输出结果。
内容的提问来源于stack exchange,提问作者newbeat
相关产品推荐
相关产品推荐

