试题编号: | 201509-2 |
试题名称: | 日期计算 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: | 问题描述 给定一个年份y和一个整数d,问这一年的第d天是几月几日? 输入格式 输入的第一行包含一个整数y,表示年份,年份在1900到2015之间(包含1900和2015)。 输出格式 输出两行,每行一个整数,分别表示答案的月份和日期。 样例输入 2015 样例输出 3 样例输入 2000 样例输出 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)