问题描述

2020年春节期间,有一个特殊的日期引起了大家的注意:2020年2月2日。因为如果将这个日期按 yyyymmdd 的格式写成一个8位数是 ,恰好是一个回文数。我们称这样的日期是回文日期。

有人表示

20200202 是“千年一遇”的特殊日子。对此小明很不认同,因为不到2年之后就是下一个回文日期:即2021年12月2日。

也有人表示

20200202并不仅仅是一个回文日期,还是一个 ABABBABA型的回文日期。对此小明也不认同,因为大约 100 年后就能遇到下一个 型的回文日期:即2121年12月12日。算不上“千年一遇”,顶多算“千年两遇”。

给定一个8位数的日期,请你计算该日期之后下一个回文日期和下一个ABABBABA型的回文日期各是哪一天。

输入格式

输入包含一个八位整数 ,表示日期。

输出格式

输出两行,每行1个八位数。 第一行表示下一个回文日期,第二行表示下一个 型的回文日期。

样例输入

20200202

样例输出

20211202 21211212



import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		String da = sc.next();
		// 20200202
		DateFormat bf = new SimpleDateFormat("yyyyMMdd");
		Date indate = null;
		try {
			indate = bf.parse(da);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
		boolean a,b;
		a = false;
		b = false;
		while(!(a&&b)) {
			indate.setTime(indate.getTime()+24*3600*1000);
			
			String aa = bf.format(indate);
			
			if(isnormal(aa)&&!a) 
			{
				System.out.println(aa);
				a = true;
				
			}
			if(isSpecial(aa)&&!b) 
			{
				b = true;
				System.out.println(aa);

				
			}
				
		}
		
	}
	
	
	private static boolean isnormal(String ss) {
		
		char[]  t = ss.toCharArray();
		
		for (int i = 0; i < 4; i++) {
			
			if(t[i]!=t[8-i-1]) return false;
			
		}
		
		return true;
	}
	
	  private static boolean isSpecial(String ss) {
		
		char[]  t = ss.toCharArray();
		
		for (int i = 0; i < 4; i++) {
			
			if(t[i]!=t[8-i-1]) return false;
		}
		
		if(t[0]==t[2]&&t[1]==t[3]) return true;
		
		return false;
		
	}

}