题解 | #日期类#
日期类
http://www.nowcoder.com/practice/130aa2d7d1f5436b920229dca253893b
#include <cstdio>
using namespace std;
bool IsLeapYear(int year)
{
return (year%4==0&&year%100!=0)||(year%400==0);
}
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}
};
int main()
{
int m;
cin>>m;
int year,month,day;
for(int i=0;i<m;i++)
{
cin>>year>>month>>day;
bool c=IsLeapYear(year);
int dayOfmonth;
if(IsLeapYear)
{
dayOfmonth=daytab[1][month];
}
else dayOfmonth=daytab[0][month];
if(day+1<=dayOfmonth)
{
//cout<<year<<"-"<<month<<"-"<<day<<endl;
printf("%04d%s%02d%s%02d\n",year,"-",month,"-",day+1);
}
else
{
if(month==12)
{
//cout<<year+1<<"-"<<1<<"-"<<1<<endl;
printf("%04d%s%02d%s%02d\n",year+1,"-",1,"-",1);
}
else
{
//cout<<year<<"-"<<month+1<<"-"<<1<<endl;
printf("%04d%s%02d%s%02d\n",year,"-",month+1,"-",1);
}
}
}
}