给定公元1000年到公元3000年之间的某一天,请你给出该天的前天是哪一天。
输入格式:
输入在一个日期,格式如"yyyy-mm-dd",题目保证所有输入日期为合法日期。
输出格式:
对每一组输入,在一行中输出日期,格式如"yyyy-mm-dd"。
输入样例:
2020-3-15
输出样例:
2020-3-13
#include <stdio.h>
int main()
{
int a,b,c;
int x[13]= {0,31,28,31,30,31,30,31,31,30,31.30,31};
int y[13]= {0,31,29,31,30,31,30,31,31,30,31.30,31};
scanf("%d-%d-%d",&a,&b,&c);
if(c>2)
{
printf("%d-%d-%d",a,b,c-2);
}
if((a % 4 == 0 && a % 100 != 0)||a % 400==0)
{
if(b!=1&&c==2)
{
printf("%d-%d-%d",a,b-1,y[b-1]);
}
else if(b!=1&&c==1)
{
printf("%d-%d-%d",a,b-1,y[b-1]-1);
}
}
if((a % 4 != 0 || a % 100 == 0)&&a % 400!=0)
{
if(b!=1&&c==2)
{
printf("%d-%d-%d",a,b-1,x[b-1]);
}
else if(b!=1&&c==1)
{
printf("%d-%d-%d",a,b-1,x[b-1]-1);
}
}
else if(b==1)
{
if(c==2)
{
b=12;
c=31;
printf("%d-%d-%d",a-1,b,c);
}
else if(c==1)
{
b=12;
c=30;
printf("%d-%d-%d",a-1,b,c);
}
}
return 0;
}