履歴書を書く時の学歴の計算は大変

今回は、履歴書を書く際に必要な「学歴」を計算するツールを作ってみましょう。皆さんは、履歴書を書いたことがありますか。書いたことがあれば、そこに学歴を記載する欄があることにお気づきでしょう。そうなんです、履歴書には、小学校・中学校・高校などの入学・卒業年度を記述する必要があるのです。とは言え、これって毎回計算するのが面倒なんですよね。そこで、なでしこのプログラムを作って、学歴計算を自動化しましょう。

学歴計算ツールを作ってしまおう

まず、学歴計算を行う上で基本的なルールをまとめてみましょう。

学校に通っている期間は、小学校6年、中学校3年、高校3年、大学4年(短大なら3年、専門学校なら2年か3年)です。そして、小学校の入学は満7歳、中学校は満13歳、高校は満16歳、大学・専門学校は満19歳です。卒業は入学と同じ年です。

現役入学でなければ、数字がずれますが、基本的な部分が計算出来ていれば修正は容易でしょう。また、早生まれ(1月から3月)であれば、各年から1を引くことになります。

以下は、西暦2000年生まれの人が大学4年間で卒業することを元にした場合の、学歴計算プログラムです。なでしこ3簡易エディタに入力して実行ボタンを押してみましょう。

# 生年の指定 --- (*1)
生年 = 2000

# 基本年の計算 --- (*2)
S=生年+7
T=生年+13
K=生年+16
D=生年+19
I=生年+23

# 結果を出力 --- (*3)
「- {生年} - 誕生

- {S}年 4月 - 小学校入学
- {T}年 3月 - 小学校卒業

- {T}年 4月 - 中学校入学
- {K}年 3月 - 中学校卒業

- {K}年 4月 - 高校入学
- {D}年 3月 - 高校卒業

- {D}年 4月 - 大学・専門学校入学
- {I}年 3月 - 大学・専門学校卒業
」を表示。

このプログラムでは、計算結果が合っているか確認しやすいように、生年を2000年に固定して計算しています。原稿執筆時点で、2000年生まれの子は、まだ高校卒業に至っていませんので、未来の予定も表示することになってしまいます。しかし、満7歳で小学校に入学し、満23歳で大学を卒業するという計算が正しいことを容易に確認できるでしょう。

  • プログラムを実行して学歴を計算したところ

    プログラムを実行して学歴を計算したところ

改めて、プログラムを確認してみましょう。(*1)の生年を書き換えることで、表の出力結果が変わります。(*2)の部分では、小学校入学(変数S)や、中学校入学(変数T)など、基本年を計算します。そして、(*3)の部分で、計算した年数を画面に表示します。

和暦表示も入れて完成させよう

ところで、ここまでの部分で作成したプログラムは、早生まれも考慮していませんし、何よりプログラムを自分で書き換えなくてはならないので大変です。ダイアログを出して、ユーザーに入力してもらえるプログラムに改造してみましょう。

また、履歴書では、西暦でなく和暦で書かなくてはならない場面も多いものです。それで、和暦表示も入れたいと思います。和暦表示に関しては、本連載の8回目で紹介しているので、その回を参考にしつつ、このプログラムに取り入れてみましょう。

以下が、改造後のプログラムです。最終的には、(空行やコメントを入れて)52行と少し長くなりました。以下のプログラムをエディタに貼り付けて実行してみてください。

# 情報の入力 --- (*1)
「生まれた年は?」と尋ねて、生年に代入。
「早生まれですか?」と二択。
もし、そうならば、生年=生年-1。

# 基本年の計算 --- (*2)
S=生年+7
T=生年+13
K=生年+16
D=生年+19
I=生年+23
# 和暦に変換 --- (*3)
生年W=生年を和暦処理
SW=Sを和暦処理
TW=Tを和暦処理
KW=Kを和暦処理
DW=Dを和暦処理
IW=Iを和暦処理

# 結果を出力 --- (*4)
「- {生年} {生年W} - 誕生

- {S}年 {SW} 4月 - 小学校入学
- {T}年 {TW} 3月 - 小学校卒業

- {T}年 {TW} 4月 - 中学校入学
- {K}年 {KW} 3月 - 中学校卒業

- {K}年 {KW} 4月 - 高校入学
- {D}年 {DW} 3月 - 高校卒業

- {D}年 {DW} 4月 - 大学・専門学校入学
- {I}年 {IW} 3月 - 大学・専門学校卒業
」を表示。

●(Yを)和暦処理とは # --- (*5)
    もし、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}年」
ここまで。

プログラムを実行すると、以下のように入力ダイアログが表示されます。そこに、生年を入力すると、次に早生まれかどうか質問されます。ブラウザに左右されますが、早生まれであれば[OK]を、早生まれでなえれば[キャンセル]のボタンを押します。

  • プログラムを実行すると、入力ダイアログが表示されます

    プログラムを実行すると、入力ダイアログが表示されます

すると、学歴が計算されて出力されます。以下は、1990年(早生まれでない場合)の結果です。

  • 1990年生まれの場合の基本的な学歴が出力されたところ

    1990年生まれの場合の基本的な学歴が出力されたところ

プログラムを確認してみましょう。(*1)の部分では、ダイアログを表示して、ユーザーからの入力を取得します。そして、(*2)の部分は前回と同じで基本的な学歴計算を行います。(*3)の部分では、西暦を和暦に計算します。そして、(*4)の部分で、計算結果を出力します。

プログラムの(*5)の部分では、西暦を和暦に変換する関数「和暦処理」を定義しています。これは、連載の8回目で作成したものとほとんど同じです。

まとめ

以上、なでしこを作って、学歴計算ツールを作ってみました。プログラム的には、ユーザーから入力したデータを足し算して結果に説明をつけて出力するというもので、とても単純な仕組みのプログラムです。単純とは言え、学歴表を必要としている人には役立つものです。

ところで、世の中のほとんどのプログラムは、基本的に、「入力」→「処理」→「出力」という流れで成り立っています。今回のプログラムでも、生年が入力で、学歴表が出力となっていることにお気づきでしょうか。この流れを意識するとプログラムが作りやすいので、参考にしてみてください。

自由型プログラマー。くじらはんどにて、プログラミングの楽しさを伝える活動をしている。代表作に、日本語プログラミング言語「なでしこ」 、テキスト音楽「サクラ」など。2001年オンラインソフト大賞入賞、2005年IPAスーパークリエイター認定、2010年 OSS貢献者章受賞。技術書も多く執筆している。