本文收錄在Java技術棧Github,歡迎Star:
https://github.com/javastacks/javastack
已經在家好幾天沒出門了,是不是都憋瘋了?今天又是個特殊的日子,我來給大家分享一個節日小知識。
20200202 為什么說是千萬難遇的一天?
因為今天是:世界完全對稱日,很少遇見,看起來和回文數差不多,如:
2020 倒過來就是 0202,拼在一起就是:20200202
這個節日是否存在科學意義還無從考證,但卻是十分有意思的一天,一千年也就那么十來個。
今天是農歷正月初九,被大家寓意為長長久久,又因 "2020" 諧音 "愛你愛你",又被不少人稱之為千年一遇的 "最佳領證日"!
這不,很多新人們都相繼預約在 20200202 這天結婚領證,年前就已經排滿了,但最近些天,不巧,這個事吧,我估計懸了。。
既然世界完全對稱日很少見,那都有哪些呢?
下面,棧長用 Java 程序打出了 21 世紀所有的世界完全對稱日,也就 12 個。
import java.text.SimpleDateFormat;
import java.util.Calendar;
/**
* @author 棧長
* @from 微信公眾號:Java技術棧
*/
public class SymmetryDay {
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
Calendar calendar = Calendar.getInstance();
for (int y = 2000; y < 2100; y++) {
String year = String.valueOf(y);
calendar.set(y, getValue(year, 2) - 1, getValue(year, 0));
String date = sdf.format(calendar.getTime());
if (date.equals(year + new StringBuilder(year).reverse())) {
System.out.println(date);
}
}
}
private static int getValue(String year, int begin) {
return Integer.parseInt(new StringBuilder(year.substring(begin, begin + 2)).reverse().toString());
}
}
輸出結果:
20011002
20100102
20111102
20200202
20211202
20300302
20400402
20500502
20600602
20700702
20800802
20900902
下一個世界完全對稱日是:20211202。
棧長用了一個很簡單的反序對比操作來輸出,個人感覺可能不是最佳的編程方式,你還會哪些比較騷的方法?歡迎留言分享。
關注Java技術棧微信公眾號,棧長將繼續分享好玩的 Java 技術,公眾號第一時間推送。