You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用datetime模块计算年龄出现TypeError该如何解决

错误原因
  • 你代码中d是datetime.date类本身,不是当前日期的实例,你已经通过d.today()获取了当前日期实例存在变量date里,应该用这个实例读取日期属性
  • year/month/day是日期实例的属性,不是可调用方法,不需要加()调用,加括号会触发你遇到的类型错误
正确实现逻辑

计算周岁需要额外判断当年的生日是否已经度过,不能直接用年月日分别相减:

  1. 先用当前年份减去出生年份得到初步年龄
  2. 对比当前的月、日和出生的月、日,如果当前月日小于出生月日,说明当年生日还没到,初步年龄减1得到最终周岁
完整可运行代码
from datetime import date as d

# 获取当前日期,变量名不用date避免和类名混淆
today = d.today()

# 输入出生年月日,可根据实际需求修改为参数传入
birth_year = 2000
birth_month = 6
birth_day = 1

# 计算年龄
age = today.year - birth_year
if (today.month, today.day) < (birth_month, birth_day):
    age -= 1

print(f"当前年龄为{age}周岁")

内容的提问来源于stack exchange,提问作者Anonymous RU

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 15:36:00