记录一下被蓝桥折磨的时光之[回文日期]
import java.util.*;
public class _回文日期 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.next();
int year = Integer.valueOf(s.substring(0, 4));
int month = Integer.valueOf(s.substring(4, 6)) - 1;
int day = Integer.valueOf(s.substring(6, 8));
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, month);
c.set(Calendar.DAY_OF_MONTH, day);
c.add(Calendar.DAY_OF_MONTH, 1);
boolean f1 = false, f2 = false;
while(f1 != true || f2 != true) {
String cur = toString(c);
if (!f1 && isPalindrome(cur)) {
System.out.println(cur);
f1 = true;
}
if (f1 && isSpecialPalindrome(cur)) {
System.out.println(cur);
f2 = true;
}
c.add(Calendar.DAY_OF_MONTH, 1);
}
}
public static boolean isPalindrome(String s) {
boolean f = true;
char[] chs = s.toCharArray();
int left = 0, right = chs.length - 1;
while(left<right) {
if (chs[left] != chs[right]) {
f = false;
break;
}
left++;
right--;
}
return f;
}
public static boolean isSpecialPalindrome(String s) {
if (!isPalindrome(s))return false;
return s.charAt(0)==s.charAt(2) && s.charAt(1) == s.charAt(3);
}
public static String toString(Calendar c) {
StringBuffer s = new StringBuffer();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH) + 1;
int day = c.get(Calendar.DAY_OF_MONTH);
if (year<10) {
s.append("000" + year);
} else if (year<100) {
s.append("00" + year);
} else if (year < 1000) {
s.append("0" + year);
} else {
s.append(year);
}
if (month<10) {
s.append("0" + month);
} else {
s.append(month);
}
if (day < 10) {
s.append("0" + day);
} else {
s.append(day);
}
return s.toString();
}
}
欢迎各位大佬一起探讨,提提宝贵意见