从控制台上输入年、月、日,计算输入的日期是这一年的第多少天 (python实现)

时间:2024-10-09 07:47:18
思路:输入年月日之后,这是这一年中的第几天 = 之前月数的总天数+当月的日子
先想一下如果是手动算的话需要怎么算
比如输入一个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()函数
然后里面是一个循环的累加
  1. year = int(input("请输入年份:")) #因为后面要进行数字的判断所以要转化为int型
  2. month = int(input("请输入月份:"))
  3. day = int(input("请输入日期:"))
  4. sum = 0
  5. for i in range(1,month):
  6. # 是31天的月份
  7. if i in [1,3,5,7,8,10,12]:
  8. sum = sum+31
  9. # 是30天的月份
  10. elif i in [4,6,9,11]:
  11. sum = sum+30
  12. # 是29天或者是28天
  13. elif i==2:
  14. if year%400 ==0 or (year%4==0 and year%100 !=0):
  15. sum = sum+29
  16. else:
  17. sum = sum+28
  18. else:
  19. print("输入的月份不对")
  20. sum = sum+day
  21. print(f"{year}.{month}.{day}{year}年的第{sum}天")
  22. # 比如2022.2.3 输出2022.2.3是2022年的第34天

运行图: