#include<stdio.h>
int month[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int data[8];
void guizheng(){
int tyear,tmon;
while(data[3]*10+data[2]>12 || data[3]*10+data[2]<1){
tyear=data[0]*1000+data[1]*100+data[2]*10+data[3];
tyear++;
data[7]=data[0]=tyear/1000;
data[6]=data[1]=tyear%1000/100;
data[5]=data[2]=tyear%100/10;
data[4]=data[3]=tyear%10;
}
while(data[1]*10+data[0]>month[data[3]*10+data[2]-1] || data[1]*10+data[0]<1){
tmon=data[4]*1000+data[5]*100+data[6]*10+data[7];
tmon++;
data[7]=data[0]=tmon/1000;
data[6]=data[1]=tmon%1000/100;
data[5]=data[2]=tmon%100/10;
data[4]=data[3]=tmon%10;
}
}
int zutoshu(){//将数组转变成数字
int num;
num=data[0]*10000000+data[1]*1000000+data[2]*100000+data[3]*10000+data[4]*1000+data[5]*100+data[6]*10+data[7];
return num;
}
int ifABAB(){
if(data[0]==data[2] && data[1]==data[3])
return 0;
else
return zutoshu();
}
int main(){
int n;
int tyear;
scanf("%d",&n);//输入日期
n++;
data[0]=n/10000000;//第1个数字
data[1]=n%10000000/1000000;//第2个数字
data[2]=n%1000000/100000;//第3个数字
data[3]=n%100000/10000;
data[4]=n%10000/1000;
data[5]=n%1000/100;
data[6]=n%100/10;
data[7]=n%10;
while(data[3]<data[4]|| data[2]<data[5] || data[1]<data[6] || data[0]<data[7]){
tyear=data[0]*1000+data[1]*100+data[2]*10+data[3];
tyear++;
data[7]=data[0]=tyear/1000;
data[6]=data[1]=tyear%1000/100;
data[5]=data[2]=tyear%100/10;
data[4]=data[3]=tyear%10;
guizheng();
}
guizheng();
printf("%d\n",zutoshu());//回文
while(ifABAB()){
tyear=data[0]*1000+data[1]*100+data[2]*10+data[3];
tyear++;
data[7]=data[0]=tyear/1000;
data[6]=data[1]=tyear%1000/100;
data[5]=data[2]=tyear%100/10;
data[4]=data[3]=tyear%10;
}
printf("%d\n",zutoshu());//ABAB回文
return 0;
}
试了几个日期,感觉是对的吧