题目描述
https://www.acwing.com/problem/content/description/3567/
给定一个日期,格式化输出该日期后一天的日期
题目中说了不会出现闰年,所以不用考虑。
逻辑处理不难,主要在于C++的日期格式化输出,如何让前面自动补0。
代码
#include<iostream>
using namespace std;
int t;
int main()
{
scanf("%d",&t);
int y,m,d;
int ny,nm,nd;
while(t--)
{
scanf("%d%d%d",&y,&m,&d);
if(d==28&&m==2) //特殊处理2月
{
ny=y;nm=3;nd=1;
}
else if(d==30&&(m==4||m==6||m==9||m==11))
{ //处理小月
ny=y;nm=m+1;nd=1;
}
else if(d==31&&(m==1||m==3||m==5||m==7||m==8||m==10||m==12))
{ //处理大月
ny=y;nm=m+1;nd=1;
if(m==12)
{
ny=y+1;nm=1;
}
}
else
{ //处理不会进月的情况
ny=y;nm=m;nd=d+1;
}
printf("%d-%02d-%02d\n",ny,nm,nd);
} //C++格式化输出,固定两位输出,如果不够两位,前面补0
return 0;
}