这个代码有什么错误?

def count_days(someday):
month=(0,31,59,120,151,181,212,243,273,304,334)
year=int(someday[0:4])
month=int(someday[4:6])
day=int(someday[6:])
if 1<=month<=12:
basicday=months[month-1]
else:
print('data error')
basicday+=day
leapyear=True
if year%4==0 and year%100!=0 or year%400==0:
leapyear=True
if leapyear and month>2:
basicday+=1
return basicday

def count_days(someday):
    months=(0,31,59,120,151,181,212,243,273,304,334)
    year=int(someday[0:4])
    month=int(someday[4:6])
    day=int(someday[6:])
    if 1<=month<=12:
        basicday=months[month-1]
    else:
        print('data error')
    basicday+=day
    leapyear=True
    if year%4==0 and year%100!=0 or year%400==0:
        leapyear=True
    if leapyear and month>2:
        basicday+=1
    return basicday
 
print(count_days('20220511'))


日期型数据要掌握datetime,time等库函数,简单且不易出错

def count_days(someday:str):
    import datetime,time
    y,m,d,*_ = list(time.strptime(someday,'%Y%m%d'))
    result = datetime.date(y,m,d)-datetime.date(y-1,12,31)
    return result.days

print(count_days('20220511'))
#result:  131 这是正确结果

注意,如答案163是错的,第163天是20220612