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


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

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

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

    通常的年份的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:

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

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

    输入:2022-02-03,输出:34天

    输入:2022-03-15,输出:74天

    输入:2000-03-01,输出:61天

    方法2: 通过datetime库函数实现

    1. import datetime
    2. date=input("请输入年月日(格式举例:2000-01-05):")
    3. year=int(date[:4])
    4. month=int(date[5:7])
    5. day=int(date[8:10])
    6. date1 = datetime.date(year=int(year), month=int(month), day=int(day))
    7. date2 = datetime.date(year=int(year), month=1, day=1)
    8. tall_day = (date1 - date2).days + 1
    9. print(date+"是当年的第"+str(tall_day)+"天")

    方法3:通过datetime库函数实现

    1. from datetime import datetime
    2. cdate=input("请输入年月日(格式举例:2000-01-05):")
    3. end=datetime.strptime(cdate, "%Y-%m-%d")
    4. start = datetime(end.year,1,1)
    5. tall_day = (end - start).days + 1
    6. print(cdate+"是当年的第"+str(tall_day)+"天")

  • 相关阅读:
    【OFDM系列7】基于迫零(ZF)均衡和MMSE均衡的MIMO-OFDM多发多收系统误码率性能的MATLAB仿真
    什么是知识付费?未来的发展趋势如何?
    C++ debug 系列
    python pip安装第三方包速度慢,这篇博客给你安排清楚了
    vue 使用 driver.js 页面分步引导
    抽象类和接口
    MongoDB介绍和基本使用
    JAVA线程的创建和使用
    大数据与云计算实验一
    【C++天梯计划】1.1 C++初识
  • 原文地址:https://blog.csdn.net/greatau/article/details/133559103