日本語プログラミング言語「なでしこ」公式サイト

日本語でプログラミングできる「なでしこ」を使って、プログラミングを身につけましょう。プログラミングができれば、いろいろな仕事を自動化することができます。逆に、一定の規則を持った表を作る場合に、プログラミングを使わずに作るのは、大変な労力が必要になります。今回は、その代表例とも言える、年齢早見表と西暦和暦変換表を作成してみましょう。

年齢早見表の作成

子供の時に、おじさん、おばさんと会うと、そのたびに「何歳になったの?」と聞かれました。その時は「いい加減覚えてよ」と思ったものですが、大人になった今、友人や親戚の子供に会うと、毎回、同じ質問をしてしまいます。しかも、自分が何歳になったのかも、忘れてしまうという始末です。自分の年齢くらい、すぐに言えるように、今回は、年齢早見表を作ってみましょう。

前回、なでしこ3とExcelを使って、カレンダーを作りましたが、今回も、それと同じ手法で、年齢早見表を作ってみます。

まずは、なでしこ3のWebエディタにアクセスし、以下のプログラムを実行してみましょう。

 年数=100
 基本年=今年
 Yを0から年数まで繰り返す
   FY=基本年 - 年数 + Y
   年齢=基本年 - FY
   「{FY} 年{タブ}満 {年齢} 才」と表示。
 ここまで。

すると、2017年内に実行すれば、以下のようなデータが表示されます。

 1917 年 (タブ) 満 100 才
 1918 年 (タブ) 満 99 才
 1919 年 (タブ) 満 98 才
 ...

このデータを、全選択して、クリップボードにコピーしましょう。そして、Excelを起動して、左上のセルを選択して、貼り付けます。罫線など装飾を加えると、以下のような表が作成できます。

年齢早見表

プログラムを確認してみましょう。このプログラムでは、『繰り返す』構文を利用して、100年分の早見表を作成しています。100年前の年から順に一年ずつ、西暦何年で、満何歳かを表示するようにしています。満年齢の計算は、単純に「基本年 - 生年」で求められます。

年号(和暦)も追加しよう

さて、この早見表は、西暦表示だけなので、和暦(年号)の項目も追加してみましょう。西暦和暦の変換は、以下の規則で行うことにします。(2019年には新年号になる予定ですが、原稿執筆時点でその詳細は不明なので、年号は平成まで計算できるものと割り切ります。)

 | 明治元年 | 1868年 |
 | 大正元年 | 1912年 |
 | 昭和元年 | 1926年 |
 | 平成元年 | 1989年 |

それでは、この規則を元に西暦和暦の変換を行うプログラムを作ってみましょう。以下のようになります。

 ●(Yで)西暦和暦変換処理とは
    もし、Y < 1912ならば
      年号=「明治」
      FY=Y - 1868 + 1
    違えば、もし、Y < 1926ならば
      年号=「大正」
      FY=Y - 1912 + 1
    違えば、もし、Y < 1989ならば
      年号=「昭和」
      FY=Y - 1926 + 1
    違えば
      年号=「平成」
      FY=Y - 1989 + 1
    ここまで
    もし、FY=1ならば、FY=「元」
    それは「{年号} {FY}年」
  ここまで。

  # 動作テスト
  2017で西暦和暦変換処理して表示。

このプログラムは、関数「西暦和暦変換処理」を定義したものです。1912年より前なら「明治」、1926年より前なら「大正」、1989年より前なら「昭和」と、「もし」構文で一つずつチェックしていくものとなっています。

それではこの変換関数を組み込んだ、年齢早見表を作ってみましょう。

 年数=100
 基本年=今年
 Yを0から年数まで繰り返す
   FY=基本年 - 年数 + Y
   年号=FYで西暦和暦変換処理。
   F年齢=基本年 - FY
   「{FY}年{タブ}{年号}{タブ}満 {F年齢} 才」と表示。
 ここまで。

 ●(Yで)西暦和暦変換処理とは
   もし、Y < 1912ならば
     年号=「明治」
     F年=Y - 1868 + 1
   違えば、もし、Y < 1926ならば
     年号=「大正」
     F年=Y - 1912 + 1
   違えば、もし、Y < 1989ならば
     年号=「昭和」
     F年=Y - 1926 + 1
   違えば
     年号=「平成」
     F年=Y - 1989 + 1
   ここまで
   もし、F年=1ならば、F年=「元」
   それは「{年号}{F年}年」
 ここまで。

プログラム自体は長くなりましたが、早見表を作成する『繰り返す』構文の中で、年号を表示するように処理を追加しただけです。

プログラムを実行し、結果をクリップボードにコピーし、Excelに貼り付けてみましょう。ちょっと罫線など装飾を加えると、以下のような早見表を作ることができます(完成した年齢早見表 年号付きage2.xlsx)。

年齢早見表(年号付き)

まとめ

以上、年齢早見表を作ってみました。今回のプログラムでは、自動で今年が何年かを考慮して早見表を作りましたが、冒頭の変数「基本年」を任意の西暦年に書き換えることで、来年の早見表、再来年の早見表を作ることもできます。

ところで、プログラムは眺めているだけよりも、改造して動作を確かめることで、理解が深まります。項目の順番を変えたり、項目を追加するなど、プログラムを改良して、自分だけの早見表を作ってみてください。