欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python 02/100例

程序员文章站 2022-06-23 23:16:22
题目 输入某年某月某日,判断这一天是这一年的第几天? 分析 例如:2018年6月19日 天数 = 19天 + 一月天数 + 2月天数 + ... + 6月天数 注意 闰年的2月是29天,如果年份是闰年,并且闰年的月份在3月以后,则需要多加1天。 1,3,5,7,8,10,12月是31天,2月是28天 ......

题目

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

分析

例如:2018年6月19日

天数 = 19天 + 一月天数 + 2月天数 + ... + 6月天数

注意

  1. 闰年的2月是29天,如果年份是闰年,并且闰年的月份在3月以后,则需要多加1天。
  2. 1,3,5,7,8,10,12月是31天,2月是28天,其他的是30天【简单记法:4,6,9是30天,2月判断是否是闰年,如果不是则28天,是则加1天,其余31天】。

完整代码

 1 #!/usr/bin/python
 2 # -*- coding: utf-8 -*-
 3 
 4 """
 5 题目:输入某年某月某日,判断这一天是这一年的第几天?
 6 程序分析:以3月5日为例,应该先把前两个月的加起来,
 7 然后再加上5天即本年的第几天,
 8 特殊情况,闰年的2月是29天,如果年份是闰年,并且闰年的
 9 月份在3月以后,则需要多加1天。
10 每四年一次闰年。
11 1,3,5,7,8,10,12月是31天,2月是28天,其他的是30天。
12 """
13 year = int(input('请输入年份:'))
14 month = int(input('请输入月份:'))
15 day = int(input('请输入今日号数:'))
16 
17 months = [0,31,59,90,120,151,181,212,243,273,304,334]
18 
19 if (month >= 1) and (month <= 12):
20     sum = months[month-1]
21 
22 sum += day
23 
24 add = 0
25 
26 if (year % 400 == 0) or (year % 4 == 0) and (year % 100 != 0):
27     add = 1
28 if (add == 1) and (month >= 2):
29     sum += add
30 
31 print('该日期是一年中第%d' % sum)

python 02/100例