输入一个日期,包括年、月和日,计算该日期是这一年的第几天

问题:输入一个日期,包括年、月和日,计算该日期是这一年的第几天。

思路:输入年月日之后,这是这一年中的第几天 = 之前月数的总天数+当月的日子

先想一下如果是手动算的话需要怎么算?

通常的年份的2月份都是28天,如果是闰年,闰年的2月份是29天。

比如输入一个2022-10-13

    计算应该是:1(31)+2(28或者29天)+3(31)+4(30)+5(31)+6(30)+7(31)+8(31)+9(30)+13

比如输入一个2022-07-13

    计算应该是:1(31)+2(28或者29天)+3(31)+4(30)+5(31)+6(30)+13

比如输入一个2022-03-13

    计算应该是:1(31)+2(28或者29天)+13

可以看到这个是一个月份的累加,中间没有间断,如果要计算10月的就要从1月加到9月。

这个适合python中的 range()函数,然后里面是一个循环的累加

方法1:

#
date=input("请输入年月日(格式举例:2000-01-05):")
year=int(date[:4])
month=int(date[5:7])
day=int(date[8:10])
f_run=[31,28,31,30,31,30,31,31,30,31,30,31]   #通常的年的每个月的天数
tall_day=0
#判断年是否闰年?
if (year%4==0 and year%100!=0 or year%400==0) and month>2:
        for i in range(month-1):
            tall_day+=f_run[i]
        tall_day+=1            #如果是闰年并且是3月份以后,需要增加1天        
else:
        for i in range(month-1):
            tall_day+=f_run[i]           
tall_day+=day
print(date+"是当年的第"+str(tall_day)+"天")

例子:输入:2020-04-19,输出:110天

输入:2022-0,2-03,输出:34天

方法2: 

你可能感兴趣的:(python,人工智能,大数据,全国计算机等级考试)