题解 | #日期类#

日期类

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;
}

全部评论

相关推荐

MinJerous:虽然我一直说 计算机不怎么卡学历 但是至少得一本
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 14:00
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务