标签:
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
void moniadd(int y,int m,int d)
{
if (m > 12)
{
y++;
m -= 12;
}
if (d>31)
{
if (m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12)
{
d -= 31;
}
else
{
if (m==2)
{
if ((y%4==0&&y%100!=0)||(y%400==0))
{
d -= 29;
}
else
d -=28;
}
else
d -=30;
}
m++;
moniadd(y,m,d);
}
else
{
// if(d>=29)
// {
if (m==2)
{
if(d>=30)
{
if ((y%4==0&&y%100!=0)||(y%400==0))
{
d -= 29;
}
else
d -=28;
m++;
}
else
{
if(d>=29)
{
if (!(y%4==0&&y%100!=0)||(y%400==0))
{
d -= 28;
}
m++;
}
}
}
else
{
if(d == 31)
{
if(m==4 || m==6 || m==9 || m==11)
{
d -= 30;
m++;
}
}
}
// }
printf("%04d/%02d/%02d ",y,m,d);
//cout<<y<<"/"<<m<<"/"<<d<<" ";
return ;
}
}
void moniminus(int y,int m,int d)
{
if (m == 0)
{
y--;
m =m + 12;
}
if (d<1)
{
if ((m-1)==0 || (m-1)==1 || (m-1)==3 || (m-1)==5 || (m-1)==7 || (m-1)==8 || (m-1)==10 || (m-1)==12)
{
d += 31;
/* m--;*/
}
else
{
if ((m-1)==2)
{
if ((y%4==0&&y%100!=0)||(y%400==0))
{
d += 29;
/* m--;*/
}
else
{
d +=28;
/* m--;*/
}
}
else
d += 30;
}
m--;
moniminus(y,m,d);
}
else
{
printf("%04d/%02d/%02d\n",y,m,d);
//cout<<y<<"/"<<m+1<<"/"<<d<<endl;
return ;
}
}
int main()
{
int n,d;
cin>>n;
while(n--)
{
cin>>d;
int yy,mm,dd;
int yyy,mmm,ddd;
yy=yyy=2013;
mm=mmm=3;
dd=ddd=24;
moniadd(yy,mm,d+dd);
moniminus(yyy,mmm,ddd-d);
}
return 0;
}
真是恶心,花了我10个小时的时间去找错误,
2 6 30
2013/03/30 2013/03/18 2013/04/23 2013/02/22
标签:
原文地址:http://blog.csdn.net/xinwen1995/article/details/45641309