思路:输入年月日之后,这是这一年中的第几天 = 之前月数的总天数+当月的日子
先想一下如果是手动算的话需要怎么算 比如输入一个2022.10.13 计算应该是:1(31)+2(28或者29天)+3(31)+4(30)+5(31)+6(30)+7(31)+8(31)+9(30)+13 比如输入一个2022.7.13 计算应该是:1(31)+2(28或者29天)+3(31)+4(30)+5(31)+6(30)+13 比如输入一个2022.3.13 计算应该是:1(31)+2(28或者29天)+13 可以看到这个是一个月份的累加,中间没有间断,如果要计算10月的就要从1月加到9月这个适合python中的 range()函数 然后里面是一个循环的累加
-
year = int(input("请输入年份:")) #因为后面要进行数字的判断所以要转化为int型
-
month = int(input("请输入月份:"))
-
day = int(input("请输入日期:"))
-
-
sum = 0
-
for i in range(1,month):
-
# 是31天的月份
-
if i in [1,3,5,7,8,10,12]:
-
sum = sum+31
-
# 是30天的月份
-
elif i in [4,6,9,11]:
-
sum = sum+30
-
# 是29天或者是28天
-
elif i==2:
-
if year%400 ==0 or (year%4==0 and year%100 !=0):
-
sum = sum+29
-
else:
-
sum = sum+28
-
else:
-
print("输入的月份不对")
-
sum = sum+day
-
print(f"{year}.{month}.{day}是{year}年的第{sum}天")
-
# 比如2022.2.3 输出2022.2.3是2022年的第34天
运行图: