Skip to content

tomiacannondale/era_ja

Repository files navigation

EraJa Build Status

Convert to Japanese era.

Installation

Add this line to your application's Gemfile:

gem 'era_ja'

And then execute:

$ bundle

Or install it yourself as:

$ gem install era_ja

ruby version

See .travis.yml

NOTE :: era_ja does not support ruby 1.9.3 since 0.4.0

Usage

format string

strftime format string can be used as an argument.

Extra format strings provided by EraJa#to_era are:

  • %o: era(alphabet)
  • %O: era(kanzi)
  • %1O: era(single kanzi)
  • %E: era year
  • %-E: era year(single digit format from 1 to 9)
  • %K: era year(kanzi numeral) After the second year, make it a numeral
  • %J: kanzi numeral

Time instance to Japanese era

require 'era_ja'
Time.mktime(2012,4,29).to_era   # => "H24.04.29"
Time.mktime(2012,4,29).to_era("%O%E年%-m月%d日") # => "平成24年4月29日"
Time.mktime(2012,4,29).to_era("%O%JE年%Jm月%Jd日") # => "平成二十四年四月二十九日"

Date instance to Japanese era

require 'era_ja'
Date.new(2012,4,29).to_era     # => "H24.04.29"
Date.new(2012,4,29).to_era("%O%E年%-m月%d日") # => "平成24年4月29日"
Date.new(2012,4,29).to_era("%O%JE年%Jm月%Jd日") # => "平成二十四年四月二十九日"

Convert numerals to kanzi

Time.mktime(2012,4,29).to_era("%JY年%Jm月%Jd日") # => "二千十二年四月二十九日"
Date.new(2012,4,29).to_era("%JY年%Jm月%Jd日")    # => "二千十二年四月二十九日"

The first year to be and the second and subsequent years to be numbers, you can use %K.

Time.mktime(2019,5,1).to_era("%O%KE年%m月%d日") # => "令和元年05月01日"
Time.mktime(2020,5,1).to_era("%O%KE年%m月%d日") # => "令和02年05月01日"
Date.new(2019,5,1).to_era("%O%KE年%m月%d日") # => "令和元年05月01日"
Date.new(2020,5,1).to_era("%O%KE年%m月%d日") # => "令和02年05月01日"

Era names

To convert to single kanji era strings, you can use %1O.

require 'era_ja'
Time.mktime(2012,4,29).to_era("%1O%E年%m月%d日") # => "平24年4月29日"

To convert to custom era strings, you can set era_names .

require 'era_ja'
Time.mktime(2012,4,29).to_era(era_names: { heisei: ['h', '平'] })                       # => "h24.04.29"
Time.mktime(2012,4,29).to_era("%O%E年%-m月%d日", era_names: { heisei: ['h', '平'] })     # => "平24年4月29日"
Time.mktime(2012,4,29).to_era("%O%JE年%Jm月%Jd日", era_names: { heisei: ['h', '平'] })   # => "平二十四年四月二十九日"
# same as Date

Checking a date is convertible

You can use era_convertible? to check if a given date is convertible or not.

require 'era_ja'
Time.mktime(1868,9,7).era_convertible? #=> false
Time.mktime(1868,9,8).era_convertible? #=> true

See Note section for more details.

Support

Report issues and feature requests to github Issues. https://github.com/tomiacannondale/era_ja/issues

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Note

The following issues exist regarding era:

Author

tomi [email protected]

License

MIT License. For more information, please see LICENSE.