题解 | #日期类#

日期类

http://www.nowcoder.com/practice/130aa2d7d1f5436b920229dca253893b

//终于碰到了熟悉的题,把日期累加题目中的number改成1就可以。
#include<stdio.h>
#include<stdbool.h>

int daytab[2][13] =
{
{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}
};

bool isLeapYear(int year)
{
return (year%4 == 0&&year%100!=0)||(year%400 == 0);
}
int main()
{
int a,year,month,day,days;
scanf("%d",&a);
for(int i=0;i<a;i++)
{
while(scanf("%d\n%d%d",&year,&month,&day)!=EOF)
{
days=day+1;
int row = isLeapYear(year);
while(days>daytab[row][month])
{
days-=daytab[row][month++];
if(month==13)
{
year++;
row=isLeapYear(year);
month=1;
}
}
printf("%04d-%02d-%02d\n",year,month,days);
}
}
return 0;
}

全部评论

相关推荐

牛客868257804号:九个中铁八个中建
点赞 评论 收藏
分享
我也曾抱有希望:说的好直白
点赞 评论 收藏
分享
3 收藏 评论
分享
牛客网
牛客企业服务