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

 时间:2026-02-13 19:31:05

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的合法性,这点要注意。

  • 完全二叉树的叶子节点数公式是什么
  • python中round的用法
  • 用Python画圆的方法
  • python大小写字母转换
  • python统计字符串中字母数字出现的次数
  • 热门搜索
    尿蛋白是怎么回事 有青春痘怎么办 台风怎么形成 方舟生存进化怎么玩 芝麻酱怎么调 怎么样提高记忆力 右胸口疼是怎么回事 脸上长毛怎么办 桥牌怎么玩 怎么样网上赚钱