/*
在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。
每个炸弹都可以设定多少天之后爆炸。
比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。
有一个贝塔炸弹,n年y月r日放置,定时为t天,请你计算它爆炸的准确日期并
按 yyyy-mm-dd格式输出,? 即4位年份2位月份2位日期。比如:2015-02-19
【数据范围】1950<=y<=2050 , 0< t < 1000
【输入说明】
输入为两行,第一行为3个整数,分别表示起始时间的年、月、日,之间用空格分隔。
第二行为定时的天数。
【输入样例】
2015 1 1
15
【输出样例】
2015-01-16
*/
#include<stdio.h>
在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。
每个炸弹都可以设定多少天之后爆炸。
比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。
有一个贝塔炸弹,n年y月r日放置,定时为t天,请你计算它爆炸的准确日期并
按 yyyy-mm-dd格式输出,? 即4位年份2位月份2位日期。比如:2015-02-19
【数据范围】1950<=y<=2050 , 0< t < 1000
【输入说明】
输入为两行,第一行为3个整数,分别表示起始时间的年、月、日,之间用空格分隔。
第二行为定时的天数。
【输入样例】
2015 1 1
15
【输出样例】
2015-01-16
*/
#include<stdio.h>
struct rq
{
int nian;
int yue;
int ri;
};
{
int nian;
int yue;
int ri;
};
void qiu_jqri( struct rq * , int );//求精确日期
void qiu_det( struct rq * );//求第二天
void qiu_dy( struct rq * ); //大月
void qiu_xy( struct rq * ); //小月
void qiu_nd( struct rq * );//年底
void qiu_ey( struct rq * );//二月
void qiu_det( struct rq * );//求第二天
void qiu_dy( struct rq * ); //大月
void qiu_xy( struct rq * ); //小月
void qiu_nd( struct rq * );//年底
void qiu_ey( struct rq * );//二月
int main(void)
{
struct rq riqi ;
scanf("%d", &riqi.nian );
scanf("%d", &riqi.yue );
scanf("%d", &riqi.ri );
int bzsj ;
scanf("%d", &bzsj);
qiu_jqri( &riqi ,bzsj);
return 0;
}
{
struct rq riqi ;
scanf("%d", &riqi.nian );
scanf("%d", &riqi.yue );
scanf("%d", &riqi.ri );
int bzsj ;
scanf("%d", &bzsj);
qiu_jqri( &riqi ,bzsj);
return 0;
}
void qiu_ey( struct rq * riqi)
{
if( riqi->ri == 28 + (riqi->nain % 4 == 0 && riqi->nain % 100 != 0 || riqi->nain % 400 == 0 ) )
{
riqi->yue += 1 ;
riqi->ri = 1 ;
return ;
}
riqi->ri += 1 ;
}
{
if( riqi->ri == 28 + (riqi->nain % 4 == 0 && riqi->nain % 100 != 0 || riqi->nain % 400 == 0 ) )
{
riqi->yue += 1 ;
riqi->ri = 1 ;
return ;
}
riqi->ri += 1 ;
}
void qiu_nd( struct rq * riqi)
{
if( riqi->yue == 12 && riqi->ri == 31 )
{
riqi->nain += 1 ;
riqi->yue = 1 ;
riqi->ri = 1 ;
return ;
}
p_ri += 1 ;
}
{
if( riqi->yue == 12 && riqi->ri == 31 )
{
riqi->nain += 1 ;
riqi->yue = 1 ;
riqi->ri = 1 ;
return ;
}
p_ri += 1 ;
}
void qiu_xy( struct rq * riqi)
{
if( riqi->ri == 30 )
{
riqi->yue += 1 ;
riqi->ri = 1 ;
return ;
}
riqi->ri += 1 ;
}
{
if( riqi->ri == 30 )
{
riqi->yue += 1 ;
riqi->ri = 1 ;
return ;
}
riqi->ri += 1 ;
}
void qiu_dy( struct rq * riqi)
{
if( riqi->ri == 31 )
{
riqi->yue += 1 ;
riqi->ri = 1 ;
return ;
}
riqi->ri += 1 ;
}
{
if( riqi->ri == 31 )
{
riqi->yue += 1 ;
riqi->ri = 1 ;
return ;
}
riqi->ri += 1 ;
}
void qiu_det( struct rq * riqi )
{
switch( riqi->yue )
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
qiu_dy( riqi->yue , riqi->ri );
break ;
case 4:
case 6:
case 9:
case 11:
qiu_xy( riqi->yue , riqi->ri );
break ;
case 12:
qiu_nd( riqi->nain , riqi->yue , riqi->ri );
break ;
case 2:
qiu_ey( riqi->nain , riqi->yue , riqi->ri );
}
}
{
switch( riqi->yue )
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
qiu_dy( riqi->yue , riqi->ri );
break ;
case 4:
case 6:
case 9:
case 11:
qiu_xy( riqi->yue , riqi->ri );
break ;
case 12:
qiu_nd( riqi->nain , riqi->yue , riqi->ri );
break ;
case 2:
qiu_ey( riqi->nain , riqi->yue , riqi->ri );
}
}
void qiu_jqri( struct rq * riqi , int bzsj)
{
while( bzsj -- > 0 )
{
qiu_det(riqi);
}
}
{
while( bzsj -- > 0 )
{
qiu_det(riqi);
}
}