日付の数値が左右対称になる日

Pocket

「2013年4月30日」は「2013430」と表わすとして、これが左右対称になる日付はいつでしょうか。

先に答えを書くと、次回は「2013年10月2日」です。
1900年から2100年まで調べてみたところ次の通りとなりました。

1900年9月1日 → 190091
1911年9月1日 → 191191
1922年9月1日 → 192291
1933年9月1日 → 193391
1944年9月1日 → 194491
1955年9月1日 → 195591
1966年9月1日 → 196691
1977年9月1日 → 197791
1988年9月1日 → 198891
1999年9月1日 → 199991
2010年10月2日 → 2010102
2011年10月2日 → 2011102
2012年10月2日 → 2012102
2013年10月2日 → 2013102
2014年10月2日 → 2014102
2015年10月2日 → 2015102
2016年10月2日 → 2016102
2017年10月2日 → 2017102
2018年10月2日 → 2018102
2019年10月2日 → 2019102
2100年1月2日 → 210012

1900年代は「9月1日」、2000年代は2010年から2019年までの「10月2日」となります。

8桁形式の場合

(2020年2月2日追記)
1999年1月2日を「19990102」のように8桁で表す場合を考えます。
西暦1年から調べると最初が101年10月10日(01011010)です。
1000年代の最後が1380年8月31日(13800831)です。
その後が2001年10月2日(20011002)です。
2000年代を列挙すると次のとおりです。

20011002
20100102
20111102
20200202
20211202
20300302
20400402
20500502
20600602
20700702
20800802
20900902

つまり今日、2020年2月2日(20200202)は左右対称になります。

import datetime
thisdate = datetime.date(1, 1, 1)
while thisdate < datetime.date(9999, 12, 31):
  yyyymmdd = thisdate.strftime("%Y%m%d")
  ddmmyyyy = yyyymmdd[::-1]
  if yyyymmdd == ddmmyyyy:
    print(yyyymmdd)
  thisdate += datetime.timedelta(days = 1)


左右対称といえばピンク・フロイドの「対」。

[ 2013年5月29日 | カテゴリー: 豆知識 | タグ: ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報