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

Python中将日期转换为整数用于比较的问题及代码错误解决方法

解决日期对象与整数比较的错误问题

嘿,我明白你的问题啦——你之所以会在if语句里出错,是因为**date1是datetime.date类型的对象,它代表的是具体的出生日期,不能直接和整数18做比较**。你已经写好了计算年龄的函数,只需要用这个函数返回的年龄数值来判断就可以啦!

修改后的完整代码

import datetime
from datetime import date

date_entry = input('Enter your birthdate in YYYY/MM/DD format: ')
year, month, day = map(int, date_entry.split('/'))
date1 = datetime.date(year, month, day)

def calculateAge(birthDate):
    today = date.today()
    age = today.year - birthDate.year - \
          ((today.month, today.day) < (birthDate.month, birthDate.day))
    return age

# Driver code
age = calculateAge(date1)  # 先把计算好的年龄存入变量
print(age, "years")
if age < 18:  # 用年龄数值和18比较,类型匹配
    print('You are under age')
    exit()

关键修改说明

  • 新增了age = calculateAge(date1):把calculateAge函数返回的整数年龄值存到变量里,这样我们就有了可以和18比较的整数类型数据
  • 把if date1 < 18:改成if age < 18::现在是整数和整数比较,类型完全匹配,不会再出现类型错误啦
  • 记住:date1是一个日期对象,它记录的是年/月/日的具体日期,不是年龄的数值,所以不能直接和整数做大小比较哦

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 16:42:43