📆

ランダムに出した西暦を昭和,平成,令和に変換してみた

2022/05/18に公開

ランダムに出す数値の幅

昭和が1926年から始まり、現在が2022年なので、1926〜2022とします。

randomを利用する

今回はPythonを使ってランダムな値を出していくので、
randomモジュールrandom.randint関数を使います。

実際に書くと以下の通りです。

import random
seireki = random.randint(1926,2022)
print("西暦"+str(seireki)+"年は",end="")

これで、seirekiという変数に1926~2022がランダムに代入されるようになりました。

最終的には、「西暦○○(1926~2022)年は昭和or平成or令和△△年です。」という形を目指します。
,end="" は、段落が変わらないようにするために必要です。)

昭和,平成,令和の開始年

昭和は1926年,平成は1989年,令和は2019年から始まります。

つまり、和暦に直すには

  • 昭和 = seireki - 1925
  • 平成 = seireki - 1988
  • 令和 = seireki - 2018

という計算をすればよいということになります。

if,elif,elseを利用する

pythonでは、if,elif,elseを使うことで、場合分けすることができます。

場合分けする要素は以下の通りです。

  • 1926年は昭和元年。
  • 1989年未満は昭和。
  • 1989年は昭和64年と平成元年。
  • 2019年以降は令和。
  • 2019年は平成31年と令和元年。
  • それ以外は平成。

元年」と「2つの元号が共存している年」の表記には拘りたかったので、
場合分けする要素が少々複雑になってしまいました。

実際に書くと以下の通りです。

import random
seireki = random.randint(1926,2022)
print("西暦"+str(seireki)+"年は",end="")

if seireki == 1926:
  print("昭和元年です。")
elif seireki < 1989:
  print("昭和"+str(seireki - 1925)+"年です。")
elif seireki == 1989:
  print("昭和"+str(seireki - 1925)+"年と平成元年です。")
elif seireki > 2019:
  print("令和"+str(seireki - 2018)+"年です。")
elif seireki == 2019:
  print("平成"+str(seireki - 1988)+"年と令和元年です。")
else:
  print("平成"+str(seireki - 1988)+"年です。")

これで、実行するたびにランダムに西暦を和暦に変換してくれるプログラムの完成です!

今後は、更に期間を広げたプログラムも書いてみたいですね。

もっと効率的な書き方もあるかも...。

Discussion