和暦西暦変換
最近書類等に書く和暦を調べるのが面倒になってきた。
(和暦なんか覚えていない)
ちょっと調べたけれどRubyで変換するのが無い。
無ければ作るのがプログラマということで早速作った。
とりあえず昭和と平成だけ。
多分、大正からは無くても問題ないからいれていない。
あまりまじめに作っていないから、今後機能拡張するんだったら作りなおしかな。
#!/usr/bin/env ruby # #和暦西暦変換 # require 'date' require 'jcode' $KCODE='utf' class Koyomi < Date #昭和と平成のみ private def table [["昭和", 1926, 12, 25, 64], ["平成", 1989, 1, 8, nil]] end #和暦 public def to_japan d = Date.new(year, month, day) table.size.times do |i| start_day = Date.new(table[i][1], table[i][2], table[i][3]) if table[i+1] end_day = Date.new(table[i+1][1], table[i+1][2], table[i+1][3]) return "#{table[i][0]}#{d.year-table[i][1]+1}年#{d.month}月#{d.day}日" if start_day <= d and d < end_day else end_day = DateTime.now return "#{table[i][0]}#{d.year-table[i][1]+1}年#{d.month}月#{d.day}日" if start_day <= d and d <= end_day end end return false end end year = ARGV.shift exit 1 unless year month = ARGV.shift unless month puts Koyomi.new(year.to_i).to_japan exit 0 end date= ARGV.shift unless date puts Koyomi.new(year.to_i, month.to_i).to_japan exit 0 end puts Koyomi.new(year.to_i, month.to_i, date.to_i).to_japan
初めて知ったけど、昭和の初日はクリスマス。
参考サイト
http://www.kumamotokokufu-h.ed.jp/kumamoto/bungaku/wa_seireki.html