Kim是一个掌控时间的大师。不同于一般人,他习惯使用秒来计算时间。如果你问他现在是几点,他会告诉你现在是今天的xxxx秒。Mik想要考考Kim。他想知道从某一天的00:00:00开始,经过s秒后是哪一天。但是Mik不会计算答案,他需要你的帮助。
注意:我们认为一天从00:00:00开始,到23:59:59结束。00:00:00经过1秒后是00:00:01;从00:00:00开始,加86400(60*60*24)秒后就是下一天的00:00:00.
第一行一个整数T表示数据组数。
接下来T行,每行一个日期yyyy-MM-dd,接下来一个整数s表示s秒。
对于每个输入,输出一行yyyy-MM-dd 表示答案。对于不足两位的数要补齐前导0。
3 2016-12-10 1000 2016-02-28 86400 2016-01-01 1000000
2016-12-10 2016-02-29 2016-01-12
T<=100
s<=2147483647
日期在1800-01-01到2100-01-01之间
闰年的判断:
1.能被4整除且不能被100整除的为闰年.
2.能被400整除的是闰年.
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int a[14]= {0,31,28,31,30,31,30,31,31,30,31,30,31};
int work(int y)
{
if((y%4==0&&y%100!=0)||y%400==0)
return 1;
else
return 0;
}
int main()
{
int y,mo,d;
int n,i,j,t;
long long m;
scanf("%d",&n);
while(n--)
{
scanf("%d-%d-%d",&y,&mo,&d);
scanf("%lld",&m);
t=m/86400;
for(i=0; i<t; i++)
{
if(work(y)==1)
a[2]=29;
else
a[2]=28;
d++;
if(d>a[mo])
{
d=1;
mo++;
if(mo>12)
{
y++;
mo=1;
}
}
}
printf("%d-%02d-%02d\n",y,mo,d);
}
return 0;
}