module JPDate::Era
Constants
- ERAS
Public Instance Methods
name_year(y, m=nil, d=nil, format: '%s%d年', human: true, short: false)
click to toggle source
和暦の元号と年を返す
Example:¶ ↑
JPDate::Era.name_year(2014) # => ["平成26年"] JPDate::Era.name_year(1926) # => ["大正15年", "昭和元年"] JPDate::Era.name_year(1926, 11) # => ["大正15年"] JPDate::Era.name_year(1926, 12) # => ["大正15年", "昭和元年"] JPDate::Era.name_year(1926, 12, 24) # => ["大正15年"] JPDate::Era.name_year(1926, 12, 25) # => ["大正15年", "昭和元年"] JPDate::Era.name_year(1926, 12, 26) # => ["昭和元年"] JPDate::Era.name_year(1926, 12, 26, human: false) # => ["昭和1年"] JPDate::Era.name_year(1927, format: '%s%02d年') # => ["昭和02年"]
# File lib/jpdate/era.rb, line 27 def name_year(y, m=nil, d=nil, format: '%s%d年', human: true, short: false) dates = [Date.new(y, m || 1, d || 1), Date.new(y, m || -1, d || -1)] eras = ERAS.select do |era_s, era_e| (0..1).inject(false) {|t, i| t || Date.parse(era_s) <= dates[i] && dates[i] <= Date.parse(era_e)} end eras.map do |s, e, v, initial| era_year = y - Date.parse(s).year + 1 res = sprintf(format, short ? initial : v, era_year) human ? res.sub(/(\D+)0*1(\D+|$)/, '\1元\2') : res end end
short_name_year(y, m=nil, d=nil)
click to toggle source