LoginSignup
1
0

More than 5 years have passed since last update.

Rubyで西暦何年に自分が何歳になってるか求めてみよう

Last updated at Posted at 2018-09-02

はじめに

Rubyを学び直している中で、「西暦を平成に変換する」プログラムを復習した。
・新元号(2018年9月現在、未発表)と西暦を紐付けるプログラム
・自分が何歳かわかるプログラム
に応用してみたのでご紹介する。

環境、前提

Rubyのversion
ruby 2.3.7
統合開発環境
Visual Studio Code
PC
MacBook Air

西暦を平成に変換するプログラム

まずは、西暦と平成を対応させてみる
西暦は、ADとも呼称するので、変数にはadを用いる。
※ラテン語の「アンノドミニ (Anno Domini)」のことである。

また、「平成1年」と表現はせず「平成元年」と表示させたいため、条件分岐で
「元年の場合」「それ以外」に分けた。

seireki_to_heisei.rb
for ad in 1989..2018
    print "西暦#{ad}年は、"
    heisei = ad - 1988
    if heisei == 1
        puts "平成元年でござるよ"
    else
        puts "平成#{heisei}年でござるよ"
    end
end

実行結果は、下記。
しっかり1年目だけ「元年」と表示されている。

西暦1989年は、平成元年でござるよ
西暦1990年は、平成2年でござるよ
西暦1991年は、平成3年でござるよ
西暦1992年は、平成4年でござるよ
西暦1993年は、平成5年でござるよ
西暦1994年は、平成6年でござるよ
西暦1995年は、平成7年でござるよ
西暦1996年は、平成8年でござるよ
西暦1997年は、平成9年でござるよ
西暦1998年は、平成10年でござるよ
西暦1999年は、平成11年でござるよ
西暦2000年は、平成12年でござるよ
西暦2001年は、平成13年でござるよ
西暦2002年は、平成14年でござるよ
西暦2003年は、平成15年でござるよ
西暦2004年は、平成16年でござるよ
西暦2005年は、平成17年でござるよ
西暦2006年は、平成18年でござるよ
西暦2007年は、平成19年でござるよ
西暦2008年は、平成20年でござるよ
西暦2009年は、平成21年でござるよ
西暦2010年は、平成22年でござるよ
西暦2011年は、平成23年でござるよ
西暦2012年は、平成24年でござるよ
西暦2013年は、平成25年でござるよ
西暦2014年は、平成26年でござるよ
西暦2015年は、平成27年でござるよ
西暦2016年は、平成28年でござるよ
西暦2017年は、平成29年でござるよ
西暦2018年は、平成30年でござるよ

そして、平成最後の夏は終わったでござる。

西暦を新元号に変換するプログラム

次に、西暦とまだ見ぬ新元号を対応させてみる

また、2020年には東京オリンピックが開催されるため、これまた条件分岐で
「元年の場合」「2020年東京オリンピック」「それ以外」に分けた。

※仮置きとして、新元号を100年スパンとした

new_gengou.rb
for ad in 2019..2118
    print "西暦#{ad}年は、"
    new = ad - 2018
    if new == 1
        puts "新元号元年でござる!新しい時代の幕開けでござる!!"
    elsif new == 2
        puts "新元号#{new}年で東京オリンピックが開催されるでごわす"
    else
        puts "新元号#{new}年でござるよ"
    end
end

実行結果は、下記。
オリンピックについても言及されている。

西暦2019年は、新元号元年でござる!新しい時代の幕開けでござる!!
西暦2020年は、新元号2年で東京オリンピックが開催されるでごわす
西暦2021年は、新元号3年でござるよ
西暦2022年は、新元号4年でござるよ
西暦2023年は、新元号5年でござるよ
西暦2024年は、新元号6年でござるよ
西暦2025年は、新元号7年でござるよ
西暦2026年は、新元号8年でござるよ
西暦2027年は、新元号9年でござるよ
西暦2028年は、新元号10年でござるよ
(以下略)

オリンピックへの楽しみよりも、東京におけるより一層の大混雑への不安の方が絶大でごわす。

西暦何年に自分が何歳になってるか求める

最後に、西暦と年齢を対応させてみる。

ここでは、平成元年生まれの方が
西暦何年に何歳になっているかを例に書いてみた。

your_age.rb
for ad in 1989..2100
    print "西暦#{ad}年は、"
    age = ad - 1989
    puts "自分は#{age}歳です"
end

実行結果は、下記。
平成元年である1989年生まれのベイビーは、今や29歳の立派な成人。
来年の新元号には、三十路に突入し、
東京オリンピックを31歳で楽しむことになる。

西暦1989年は、自分は0歳です
西暦1990年は、自分は1歳です
(中略)
西暦2018年は、自分は29歳です
西暦2019年は、自分は30歳です
西暦2020年は、自分は31歳です

こうしてみると、プログラミングも身近に感じられるです。はい。

まとめ

いかがだっただろうか。新元号変換や自分の年齢がわかる参考となり、お役に立てる記事となれば幸いでごわす。
ぜひ、新元号が発表された際には、プログラムを書き換えてみたい。
また、新元号何年に自分が何歳かも求めてみよう。それでは、また次回。

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0