问题描述:给定日期,求距离n天的前后日期
int month(int y, int m)
{
if (m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12)
return 31;
if (m==4 || m==6 || m==9 || m==11)
return 30;
if (y%4==0 && y%100!=0 || y%400==0)
return 29;
return 28;
}
int main()
{
int nowyear=2010;
int nowmouth=8;
int nowday=17;
int num;
cin>>num;
for(int i=0;i<num;i++)
{
long long ge;
cin>>ge;
long long ge1=ge;
int year=nowyear,mouth=nowmouth,day=nowday;
while(ge1>0)
{
ge1--;
day++;
if(day==(month(year,mouth)+1))
{
day=1;
mouth++;
if(mouth==13)
{
year++;
mouth=1;
}
}
}
cout<<year<<"/";
if(mouth<10)
cout<<"0";
cout<<mouth<<"/";
if(day<10)
cout<<"0";
cout<<day;
cout<<" ";
long long ge2=ge;
year=nowyear;
mouth=nowmouth;
day=nowday;
while(ge2>0)
{
ge2--;
day--;
if(day==0)
{
mouth--;
if(mouth==0)
{
year--;
if(year==0)
year--;
mouth=12;
}
day=month(year, mouth);
}
}
cout<<year<<"/";
if(mouth<10)
cout<<"0";
cout<<mouth<<"/";
if(day<10)
cout<<"0";
cout<<day;
cout<<endl;
}
}