昨日まで続いた師走の嵐から一変、ど晴天の休日の今日、皆様いかがお過ごしでしょうか。
昨日エントリーを書きました安元の結婚式である本日も、Advent Calendarのバトンを引き継いでおります。
休日なので、軽めのtipsを書かせていただきます。
皆さんは日付を和暦で表示する時、どのような処理をしているでしょうか。
日付なんてDBに入ってる値を、多少整形する形で済めばいいのですが、案件によっては和暦表示にせざるを得ないことは、往々にしてあるかと思います。
私がメインで扱っているruby(rails)では、和暦表示用のプラグインがあるので、それを導入すれば済むのですが、
それを知らずに自前で作っていた時は以下のようにメソッドを作ってました。
def get_wm_y(ymd) return "" if ymd.blank? case ymd.year when 0..1925 return "#{ymd.year}年" when 1868..1911 return '明治' + "#{ymd.year - 1867}年" when 1912..1925 return '大正' + "#{ymd.year - 1911}年" when 1926..1988 return '昭和' + "#{ymd.year - 1925}年" else return '平成' + "#{ymd.year - 1988}年" end end |
とても泥臭い感じはしますが、和暦計算の法則に則ったかたちになります。
ひとつ難点は、「元年」表示ができないことですが、これも条件分岐で処理すればいいでしょう。
日付に関してもう一つ。
これは日本特有かもしれませんが、「年度」という概念があります。
2010年1月は、2009年度扱いにしないといけないわけですが、これは以下のようにしてます。
def get_nend_y(ymd) return "" if ymd.blank? case ymd.month when 1..3 (ymd.year - 1).to_s else ymd.year.to_s end end |
これはすごくシンプルですかね。
大したことは書いてませんが、ちょっとしたtipsとしてお役に立てればと思います。
あと、こうしたほうがいいというのがあれば、ぜひご意見お寄せください。
では、めでたき結婚式に行って参ります。