CCF考试题 2015-09-2

日期计算

题目

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

输入

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

输出

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

输入样例1

2015
80

输出样例1

3
21

输入样例2

2000
40

输出样例2

2
9

参考代码

#include<stdio.h>
bool panduan(int n)
{
	if((n%4==0&&n%100!=0)||(n%400==0))
		return true;
	return false;
}
int main ()
{
	int y,d;
	int m,n;
	scanf("%d %d",&y,&d);
	bool flag=panduan(y);
	if(flag&&d>60)
		d=d-1;
	if(d<=31)
	{
		m=1;
		n=d;
	}
	else if(d<=59)
	{
		m=2;
		n=d-31;
	}
	else if(d<=90)
	{
		m=3;
		n=d-59;
	}
	else if(d<=120)
	{
		m=4;
		n=d-90;
	}
	else if(d<=151)
	{
		m=5;
		n=d-120;
	}
	else if(d<=181)
	{
		m=6;
		n=d-151;
	}
	else if(d<=212)
	{
		m=7;
		n=d-181;
	}
	else if(d<=243)
	{
		m=8;
		n=d-212;
	}
	else if(d<=273)
	{
		m=9;
		n=d-243;
	}
	else if(d<=304)
	{
		m=10;
		n=d-273;
	}
	else if(d<=334)
	{
		m=11;
		n=d-304;
	}
	else if(d<=365)
	{
		m=12;
		n=d-334;
	}
	if(flag&&d==60)
	{
		m=2;n=29;
	}
	printf("%d\n%d\n",m,n);
	return 0;	
}

这个题我们需要判断给出的年份是否是闰年,我用了一个函数(参考以上的panduan函数)来判断,如果是闰年且天数大于60,我把天数减去1,当做一般的年份来计算;如果是闰年且天数等于60,就直接是2月29.一般的年份计算属于哪个月份的哪一天,我用的if-else来列举了每一种情况。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值