import java.text.SimpleDateFormat;
import java.util.Calendar;
public class Main {
/*
* 要求:找到2020 02 02后面的第一个回文日期
* 思路:(1)从该年依次往后累加,将得到的日期格式化为yyyy-MM-dd
* (2)将该日期转换为字符数组
* (3)判断该字符数组是不是回文
* */
public static void main(String[] args){
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR,2020);
c.set(Calendar.MONTH,02);
c.set(Calendar.DAY_OF_MONTH, 02);
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
for(int i=1;i<9999;i++) {
//每次日期累加1
c.add(Calendar.DAY_OF_YEAR, 1);
//获取格式化后的日期字符串2020-02-02
String datestr = sd.format(c.getTime());
char[] date = datestr.toCharArray();
char[] str = new char[8];
int t=0;
for(int j=0;j<date.length;j++) {
if(date[j]>='0'&&date[j]<='9') {
str[t++] = date[j];
}
}
//判断字符数组str是否是回文
if(isHuiWen(str)) {
System.out.println(datestr);
break;
}
}
}
//判断数组是不是回文。只有一个字符也是回文
private static boolean isHuiWen(char[] str) {
for(int i=0;i<str.length/2;i++) {
if(str[i]!=str[str.length-1-i])
return false;
}
return true;
}
}
答案:2021-12-02