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


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

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

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

    通常的年份的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)+"天")

  • 相关阅读:
    最长公共子序列(最详细的动态规划案例)
    小样本机载分布式雷达空时自适应处理方法
    野火FPGA进阶(1):基于SPI协议的Flash驱动控制
    KubernetesNode节点配置
    SpringBoot的IDEA下创建新项目流程,附带start.spring.io URL error问题的解决
    大数据技术与原理实验报告(MapReduce 初级编程实践)
    微信小程序:云开发表白墙微信小程序源码下载免服务器和域名支持流量主收益
    那些不易解释的互联网知识
    【补充】助力工业物联网,工业大数据之AirFlow安装
    element + vue3,级联选择器实现省市区
  • 原文地址:https://blog.csdn.net/greatau/article/details/133559103