1290. 【数组测试题11】生日日数(birthday)

46 篇文章 0 订阅
27 篇文章 0 订阅
题目描述

ZCQ老师的生日是Y年M月D日,他想知道自己出生后第一万天纪念日的日期(出生日算第0天)。

输入

只有一行,分别读入Y,M,D(分别代表年、月、日),日期绝对合法。
(1900<=Y<=2008,1<=M<=12,1<=D<=31)

输出

只有一行,即ZCQ老师生日第一万天以后的日期,格式为“Y-M-D”。(注意年月日之间用横线,即英文状态下的减号连接)

样例输入 
1979 4 16
样例输出 
2006-9-1

实现代码:

#include<iostream>//头文件 
using namespace std;
int main()
{
	int y,m,d,i;//分别代表年,月,日,循环变量 
	cin>>y>>m>>d;//输入年月日 
	for(i=1;i<=10000;i++)//循环10000
	{
		d++;//加一天 
		switch(m)//判断月(日的天数是否超过正常天数) 
		{
			case 1:case 3:case 5:case 7:case 8:case 10://如果是1,3,5,7,8,10月 
			{
				if(d>31)m++,d=1;//如果天数大于31月+1,日归一 
				break;//跳出 
			}
			case 4:case 6:case 9:case 11://如果是4,6,9,11月
			{
				if(d>30)m++,d=1;//如果天数大于30月+1,日归一 
				break;//跳出 
			}
			case 12://如果是12月 
			{
				if(d>31)y++,m=1,d=1;//如果天数大于31年+1月归一,日归一 
				break;//跳出 
			}
			case 2://如果是2月 
			{
				if((y%4==0&&y%100!=0)||(y%400==0))//如果是闰年 
				{
					if(d>29)m++,d=1;//如果天数大于29月+1,日归一 
				}
				else if(d>28)m++,d=1;//如果天数大于28月+1,日归一 
				break;//跳出 
			}
		}
	}
	cout<<y<<'-'<<m<<'-'<<d; //输出 
	return 0;
}

运行结果:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值