不支持的操作数类型 - :'str'和'str'

问题描述 投票:0回答:1
import datetime

birthday=[int(i) for i in str(20000707)]

today=datetime.datetime.now()

today=today.strftime('%Y-%m-%d')

a=birthday[0:4]

a=''.join(str(i) for i in a)

a=int(a)

b=birthday[4:6]

b=''.join(str(i) for i in b)

b=int(b)

c=birthday[6:8]

c=''.join(str(i) for i in c)

c=int(c)

dob=datetime.date(a,b,c)

aged=(today-dob).days

agey=aged/365

print agey

它会引发以下错误:

老化=(今日-DOB).days

TypeError:不支持的操作数类型 - :'str'和'datetime.date'

python python-2.7 datetime
1个回答
0
投票

以下代码编译并运行并显示正确的年数:

注意我做了以下更改:

  1. 删除将today转换为字符串格式的行
  2. dobdatetime.date类型更改为datetime.datetime类型
  3. 删除不必要的代码行

这是代码:

import datetime
birthday=[int(i) for i in str(20000707)]
today=datetime.datetime.now()
a=int(''.join(str(i) for i in birthday[0:4]))
b=int(''.join(str(i) for i in birthday[4:6]))
c=int(''.join(str(i) for i in birthday[6:8]))
dob = datetime.datetime(a,b,c)
aged = (today-dob).days
agey = aged / 365
print(agey)

>> 17.46849315068493
© www.soinside.com 2019 - 2024. All rights reserved.