和暦西暦変換
最近、西暦と平成の変換が必要になることが多いけど、即座にできないのでプログラムを書いてみた。これは、正しい怠惰の使い方ですよね。
ただ、seirekiとかsyouwaという変数名を使うのはいやだったので、日本語識別子を試してみる。
日本語識別子は、-Kオプションで文字コードを指定すると使えるようになります。
$ jpdate s60 1985 $ jpdate 2006 H18
#! /opt/local/bin/ruby -w -Ku # -*- mode:ruby enconding:utf-8 -*- # # jpdate.rb - 和暦 <-> 平成相互変換プログラム # # Copyright(C) 2007 by mzp # Author: MIZUNO Hiroki <hiroki1124@gmail.com> # http://mzp.sakura.ne.jp/ # # Timestamp: 2007/07/23 16:27:03 # # This program is free software; you can redistribute it and/or # modify it under the same terms as Ruby itself. # def from_昭和(昭和) 1900 + 昭和 + 25 end def from_平成(平成) 2000 + 平成 - 12 end def to_和暦(西暦) case 西暦 when 1926..1989 # 昭和 "S#{西暦 - 1988}" else # 平成 "H#{西暦 - 1988}" end end case ARGV[0] when /\AS/i # 昭和 puts from_昭和($'.to_i) when /\AH/i # 平成 puts from_平成($'.to_i) when /\A\d/ # 西暦 puts to_和暦(ARGV[0].to_i) end
ポータビリティはさておき、日本語の識別子のほうが圧倒的に分りやすいですね。
乱用さえしなければ、日本語識別子はありかもしれない。