20200202,千年難遇啊!


本文收錄在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 技術,公眾號第一時間推送。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM