{ 2010.12.4 }

rails 日付TIPS

    はてなブックマーク - rails 日付TIPS
    このエントリーをはてなブックマークに追加

    昨日まで続いた師走の嵐から一変、ど晴天の休日の今日、皆様いかがお過ごしでしょうか。

    昨日エントリーを書きました安元の結婚式である本日も、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としてお役に立てればと思います。
    あと、こうしたほうがいいというのがあれば、ぜひご意見お寄せください。

    では、めでたき結婚式に行って参ります。

    Comments are closed.