给定公元2000年到公元3000年之间的某一天,请你给出该天的前天是哪一天.
输入在一个日期,格式如"yyyy-mm-dd",题目保证所有输入日期为合法日期。
在一行中输出日期,格式如"yyyy-mm-dd"。
示例1
2020-11-15
2020-11-13
注意日期格式,月份或者天数不足2位要补零。
参考代码:
#include
using namespace std;
int main()
{
int y,n,d;
char a;
cin>>y>>a>>n>>a>>d;
int m[12]={31,28,31,30,31,30,31,31,30,31,30,31};
if((y%100!=0 && y%4==0) || y%400==0)
m[1]=29;//闰年二月29天
if(d-2>0)//减去两天后不需要跨月的情况;
d=d-2;
else if(n>1){//减去两天需要跨月,并且减前不是一月;
n=n-1;
d=d-2+m[n-1];
}
else{//减去两天需要跨月,并且原来是一月所以需要跨年
y=y-1;
n=12;
d=d-2+m[n-1];
}
printf("%d-%.2d-%.2d",y,n,d);//setw(2)只能规定占两格,但不会补0;
return 0;
}