和暦変換(年号変換) | package入門(カレンダー・システム編) [講座] | 逆ポーランド電卓の実践ウェブ rpn hacks!

逆ポーランド電卓の実践ウェブ rpn hacks!

逆ポーランド電卓rpnの実践ウェブ   
rpn hacks! アールピーエヌ・ハックスサイトマップ

rpn | 講座 | package入門 | ポテンシャルを飛躍的に高めるrpnパッケージを学習。

HOME > 講座 > package入門 > カレンダー・システム編 > 和暦変換(年号変換)

hatena twitter facebook rss ソーシャルブックマーク

和暦変換(年号変換)

 年号は漢字文化の影響のある特定の国々で、現在も使われています。近年はビジネスでも日付を西暦で表すことが多くなりましたが、それでも契約書や公文書などでは年号を用います。

それに日常生活では和暦を使って、表現するほうが普通です。卒業や結婚、就職などの人生の節目にはいつも和暦が出てきました。あの頃は…と振り返るとき西暦ではなく、和暦で思い起こす人がほとんどでしょう。

ただ経済活動がグローバルになってしまってからは、世界の出来事が日本に影響することも多くなり、ニュースや記録の面では西暦を使うことがほとんどです。気が付くと西暦を和暦(年号+年)に直してから、考えることが多くなりました。

1945年8月15日が昭和20年(終戦)、1963年11月22日が昭和38年(ケネディー暗殺)、1985年8月12日が昭和60年(JAL機墜落)、1987年10月19日が昭和62年(ブラックマンデー)、2001年9月11日が平成13年(世界同時多発テロ)のようにです。

西暦から和暦に年号変換

 そこで、変換する年号の対象を明治、大正、昭和、平成、令和に限定したwarekiプログラムを提供しています。warekiプログラムは以下に示すように、指定された西暦を和暦に変換してくれるプログラムです。ただし、変換できる西暦は1868年から現在までです。

  >rpn 2010 -c wareki
  平成 22


ファイルに西暦を保存しておけば一括で和暦に変換できます。例えば、以下は近代(明治以降)における戦争の開始年と終了年です。

1894年~95年
日清戦争
1904年~05年
日露戦争
1914年~18年
第一次世界大戦
1937年~45年
日中戦争(支那事変)
1939年~45年
第二次世界大戦
1941年~45年
大平洋戦争(大東亜戦争)

ファイルのwar.txtに戦争の開始年(西暦)が保存してあるとします。

  >type war.txt
  1894
  1904
  1914
  1937
  1939
  1941


年号変換する前に、データをグラフ化してみると戦争が起こった間隔が掴めます。明治以降は外国との戦争続きです。日中から太平洋戦争までを一連として捉えると、大きく分けて4つの戦争になります。

  |
  |
  |                                                 太平洋
  |                                               第二次
  |  日清      日露      第一次                 日中
  |
  1890                                                    1950
  +--------1900------1910------1920------1930------1940------>


最長でも江戸時代が終わってから日清戦争まで26年間、第一次世界大戦から日中戦争までの23年間が戦争のなかった期間です。平和(戦争のない期間)は意外に短いことが分かります。

このファイルをwarekiプログラムに渡せば、和暦が出てきます。年号と照らし合わせたほうが時代背景がよく分かるでしょう。

  >rpn -c wareki <war.txt
  明治 27
  明治 37
  大正 3
  昭和 12
  昭和 14
  昭和 16


明治時代に2度(日清・日露)、大正時代に1度(第一次)、昭和時代で3度(日中、第二次、太平洋)です。平成時代には何も起こらないで欲しいものです。

和暦から西暦に変換

 さて、このwarekiプログラムですが、和暦から西暦への変換もできるようになっています。明治27年に対応する西暦を計算するときは以下のようにします。

  >rpn m 27 -c wareki
  西暦 1894


このように「m」の記号の後に年を指定することで、西暦に変換できます。計算結果から明治27年は西暦1894年であることが分かります。上の年表と一致しますね。同様に大正は「t」、昭和は「s」、平成は「h」、令和は「r」を記号として指定します。

  >rpn t 3 -c wareki
  西暦 1914
  >rpn s 16 -c wareki
  西暦 1941
  >rpn h 22 -c wareki
  西暦 2010
  >rpn r 3 -c wareki
  西暦 2021


情報明治、大正、昭和、平成、令和を意味する記号は、rpnではサイン、タンジェント、マイナス、16進数化、平方根の機能になります。年号の記号ではありません。従って、あまり行儀のよいプログラムとは言えません。あくまで例外的なプログラムだと考えてください。

警告明治45年と大正元年は同一年です。大正15年と昭和元年は同一年です。昭和64年と平成元年は同一年です。平成31年と令和元年は同一年です。warekiプログラムは同一年の場合、先の年号を出力します。

日本の歴史

 日本は長い歴史のある国です。インド、中国、ヨーロッパ、北米など大陸からの影響を受けながらも列島の中で独自の文化を育んできました。学校教育でも日本の歴史を縄文、弥生時代から始まり、奈良、平安、鎌倉、室町、江戸時代など順に学んでいきます。

6世紀末
飛鳥時代
710年
奈良時代
794年
平安時代
1185年
鎌倉時代
1336年
室町時代
1573年
安土桃山時代
1603年
江戸時代
1868年
明治時代
1912年
大正時代
1926年
昭和時代
1989年
平成時代
2019年
令和時代

以下に時代という区分けでグラフ化してみました。横軸が西暦0年から2000年です(縦軸には意味はありません)。弥生時代の前には旧石器、縄文時代がありますが、紀元前数十万年前から紀元前3世紀というスケールなので無視しています。飛鳥時代以降、一見すると平安、室町、江戸時代が長いことが分かります。

  |                                                               令和
  |                                                             平成
  |                                                            昭和
  |                                                           大正
  |                                                         明治
  |                                                 江戸
  |                                        室町
  |                                   鎌倉
  |                       平安
  |                    奈良
  |                飛鳥
  |         古墳             
  |    弥生                
  +---------------|---------------|---------------|---------------> 2000
                 500             1000            1500


当然ですが、上図は時代毎の区分けであって年号ではありません。従って、後世の人によって、明治以降の年号がまとめられて○○時代と改められる可能性もありますね。

日本での受験対策という意味では、近代史(明治以降)の歴史については学びが浅い傾向があります。近代史は2000年の日本の歴史の中のほんの100年なのですから無理もないことなのですが、今後ますます激動する世界情勢を理解したり諸外国との交渉を考えるなら、近代史こそ重点的に学ぶべき時代なのでしょう。

情報本講座で使用したプログラムは、カレンダー・システムパッケージとして購入することができます。xypとnpdはrpnの姉妹ソフトウェアです。詳しくはプロダクトを参照ください。

カレンダー・システムパッケージ

カレンダー

ユーティリティー

マイスター

警告文字で作られた図表や式が崩れることがあります。ブラウザによっては固定幅フォントをMSゴシックにするときれいに表示されます。それでも崩れる場合は図表や式をメモ帳にコピー後、閲覧下さい。

警告rpn標準版(2kリビジョン)はダブルクォートで囲って下さい。

rpn 1 2 + ⇒ rpn "1 2 +"
rpn 1 -c foo ⇒ rpn "1" -c "foo"

ダブルクォートは省略できることが多いのですが、慣れない間は囲んだほうが無難です。なお、本ウェブサイトの記事ではrpn標準版(98リビジョン)を使用しているため囲っていません。詳しくは技術サポートの「rpn TIPS」を参照ください。

注意rpnの障害情報と対策はこちら