python判断某个日期是该年的第几天

代码怎么错的

img

可以贴下代码吗

如果可以使用datetime库的话就超简单:
获取日期,然后减去上一年的最后一天即可得到天数

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import datetime

date = input('请输入日期格式类似2021/11/11:')  # 获取年份
y, m, d = [int(i) for i in date.split('/')]
targetDay = datetime.date(y, m, d)  # 将输入的日期格式化成标准的日期

dayNum = targetDay - datetime.date(targetDay.year - 1, 12, 31).split('day')[0]  # 减去上一年最后一天,可得解
print(dayNum) 


import calendar
import datetime

#当前年月
year = int(input('请输入年:'))
moth = int(input('请输入月:'))

# 把该年的月的所有天统计
list = []
for i in range(1,13):
    monthRange = calendar.monthrange(year,i) # 获取该年的该月有多少天
    list.append(monthRange[1]) # 把每月的天数添加到list

# 获1~10月份的所有天数
day = 0
for i in list[0:moth-1]: # moth为11-1 = 10月份,获1~10月份的所有天数
    day = day + i

# 获取当前时间,该月几号-即这个月已经过去了多少天
today=datetime.date.today()
formatted_today=today.strftime('%d')

#1~10月份的所有天数 + 即这个月已经过去了多少天 - 减一是一年是从1开始数起,而不是从零开始
time = int(day)+int(formatted_today)-1
print('今年已经过去了:'+str(time))

平年和闰年的判断方法,闰年的二月有29天,平年的二月有28天
上面的代码 list[1]元素 即为2月的天数,
if list[1] == 29:print('闰年')
if list[1] == 28:print('平年')