给定一个日期计算该日期在年内是第几天(python)

2025-10-29 11:20:49

1、1)计算给定的年月日时间 首先要判断是否是闰年

闰年的判断 有三个条件,实际中 忘掉 year % 400 == 0 的条件

2)使用numpay的cumsum提前把累加和计算好,后面就方便了

否则 要麻烦很多!

import numpy as np

ymd = input('输入年月日(yyyy-mm-dd) :')

year = int(ymd[0:4])  # 获取年份

mon = int(ymd[5:7])  # 获取月份

day = int(ymd[8:])  # 获取日

print(year, mon, day)

pingYear = [31,28,31,30,31,30,31,31,30,31,30,31]

RunYear = [31,29,31,30,31,30,31,31,30,31,30,31]

给定一个日期计算该日期在年内是第几天(python)

2、使用numpay的cumsum 计算列表的累加和,方便计算!

sumSpan =0;cumpingYear = np.array(pingYear).cumsum()cumRunYear = np.array(RunYear).cumsum()# print(np.array(pingYear))# print(np.array(pingYear).sum())print(cumpingYear)print(cumRunYear)

给定一个日期计算该日期在年内是第几天(python)

3、if(mon == 1):  如果是一月 直接输出day即可

    sumSpan = day

    print(sumSpan)

else:

    if (year % 4 ==0 and year % 100 != 0) or (year % 400 == 0):

        sumSpan = cumRunYear[mon - 2]    闰年: 按cumRunYear取值

        # print(sumSpan)

        sumSpan += day

        print(sumSpan)

    else:

        sumSpan = cumpingYear[mon - 2]    平年: 按cumpingYear取值

        # print(sumSpan)

        sumSpan += day

        print(sumSpan)

给定一个日期计算该日期在年内是第几天(python)

4、输入年月日(yyyy-mm-dd) :>? 2019-03-01

2019 3 1

[ 31  59  90 120 151 181 212 243 273 304 334 365]

[ 31  60  91 121 152 182 213 244 274 305 335 366]

60

给定一个日期计算该日期在年内是第几天(python)

5、再输入 2019-01-30 验证1月算法正确性

输入年月日(yyyy-mm-dd) :>? 2019-01-30

2019 1 30

[ 31  59  90 120 151 181 212 243 273 304 334 365]

[ 31  60  91 121 152 182 213 244 274 305 335 366]

30

给定一个日期计算该日期在年内是第几天(python)

6、小结:

优点: 使用np计算累加和,方便计算

缺点: 缺乏对输入数据的判断,实际使用要加入数据合法性判断

比如: 输入2019-02-31  本程序不会判断31的合法性,这点要注意。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢