题目描述
代码:
package com.it.lanqiao;
import java.util.*;
/**
* 回文日期
*/
public class Example10 {
public static void main(String[] args) {
String dateStr = "20200202";
int year = Integer.parseInt(dateStr.substring(0, 4));
int month = Integer.parseInt(dateStr.substring(4, 6));
int day = Integer.parseInt(dateStr.substring(6, 8));
Calendar calendar = new GregorianCalendar(year, month, day);
List<String> list = new ArrayList<>();
while (list.size() < 2) {
calendar.add(Calendar.DATE, 1);
String cs = calendarToString(calendar);
if (list.size() == 0 && isPD(calendar)) {
list.add(cs);
} else if (list.size() == 1 && isPD_(calendar)) {
list.add(cs);
}
}
list.forEach(System.out::println);
}
public static boolean isPD(Calendar calendar) {
String ds1 = calendarToString(calendar);
String ds2 = new StringBuffer(ds1).reverse().toString();
return ds1.equals(ds2);
}
public static boolean isPD_(Calendar calendar) {
String ds1 = calendarToString(calendar);
String[] fields = ds1.split("");
boolean b1 = fields[0].equals(fields[2]) && fields[0].equals(fields[5]) && fields[0].equals(fields[7]);
boolean b2 = fields[1].equals(fields[3]) && fields[1].equals(fields[4]) && fields[1].equals(fields[6]);
String ds2 = new StringBuffer(ds1).reverse().toString();
return ds1.equals(ds2) && b1 && b2;
}
public static String calendarToString(Calendar calendar) {
String year = calendar.get(Calendar.YEAR) + "";
String month = (calendar.get(Calendar.MONTH) + 1) + "";
if (month.length() == 1) month = 0 + month;
String day = calendar.get(Calendar.DATE) + "";
if (day.length() == 1) day = 0 + day;
return year + month + day;
}
}
结果: