【Python】【demo实验8】【练习实例】【计算当天是当年的第几天】

题目:输入某年某月某日,判断这一天是这一年的第几天?

程序分析:

以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于2时需考虑多加一天:

对于年份,需要考虑是否为闰年;

对于月份,可以建立一个列表,每月的天数;

我的源代码:

  

#!/usr/bin/python
# encoding=utf-8
# -*- coding: UTF-8 -*-

# 题目:输入某年某月某日,判断这一天是这一年的第几天?


date = (input("please input the date:\n"))
#输入格式为20190909
pingNian     = [0,31,28,31,30,31,30,31,31,30,31,30,31]#平年每月天数
runNian     = [0,31,28,31,30,31,30,31,31,30,31,30,31]#闰年每月天数
y=int(date[0:4]) #获取年份
m=int(date[4:6]) #获取月份
d=int(date[6:8]) #获取日数
num = 0    #用于统计
k = 0    #用于标记平年还是闰年,k==1  表示为闰年;



#run函数判断是否为闰年
#能被4整除的不能被100整除的都是闰年
#能被400整除的都是闰年;



#print(pingNian,runNian,y,m,d,num,k)

def run(y):

    return (y%4==0 and y%100!=0 or y%400==0)







if m in [1,2]:
    if m == 2:
        num = pingNian[1]+d
    else :
        num = d
else:
    if run(y):
        for i in range(1,m):
            num = num + runNian[i]
            print("*",num)
    else:
        for i in range(1,m):
            num = num + pingNian[i]
            print("#",num)
    num = num + d
print(num)

输出结果:

C:\Python30_demo>python 019demo.py
please input the date:
20130506
# 31
# 59
# 90
# 120
126

原题给出的解答:

————————(我是分割线)————————

参考:

1. RUNOOB.COM  : https://www.runoob.com/python/python-exercise-example3.html

2. https://zhidao.baidu.com/question/467715860.html

3. 百度百科:https://baike.baidu.com/item/%E5%AE%8C%E5%85%A8%E5%B9%B3%E6%96%B9%E6%95%B0/8025061?fr=aladdin

备注:

初次编辑时间:2019年9月23日23:10:11

环境:Windows 7   / Python 3.7.2

猜你喜欢

转载自www.cnblogs.com/kaixin2018/p/11575578.html