CCF201509-2 日期计算 (python语言)

试题编号: 201509-2
试题名称: 日期计算
时间限制: 1.0s
内存限制: 256.0MB
问题描述:

问题描述

  给定一个年份y和一个整数d,问这一年的第d天是几月几日?
  注意闰年的2月有29天。满足下面条件之一的是闰年:
  1) 年份是4的整数倍,而且不是100的整数倍;
  2) 年份是400的整数倍。

输入格式

  输入的第一行包含一个整数y,表示年份,年份在1900到2015之间(包含1900和2015)。
  输入的第二行包含一个整数dd在1至365之间。

输出格式

  输出两行,每行一个整数,分别表示答案的月份和日期。

样例输入

2015
80

样例输出

3
21

样例输入

2000
40

样例输出

2
9

 

问题链接:CCF201509-2 日期计算

问题分析

本题重点就是如何计算是哪一个月的第几天。我们只需要把输入的d依次减去从一月到12月的天数。减到恰好是负数的那个月份就是将要计算的月份。剩余的d也就是这个月的第d天

具体实现请参考下面代码

满分代码

#首先将月份信息用month数组表示出来,其中二月假定是非闰年
month=[0,31,28,31,30,31,30,31,31,30,31,30,31]
#输入信息
y=int(input())
d=int(input())
#判断是否是闰年
if (y%4==0 and y%100!=0) or y%400==0:
    month[2]=29
#初始化输出的月份和日期的变量
put_mon=0
put_day=0
#从一月到12月以此遍历
for m in range(1,13):
    #如果天数d小于当前月份的天数,代表d就在这个月里面
    #同时剩余的天数d也就是这个月的第d天
    if d<=month[m]:
        put_mon=m
        put_day=d
        break
    else:
        d-=month[m]
print(put_mon)
print(put_day)

 

你可能感兴趣的:(CCF,ccf,python)