class Zakuro::Japan::Gengou
Gengou
元号情報
Attributes
end_date[R]
@return [Western::Calendar] 終了日
name[R]
@return [String] 元号名
new_year_date[R]
@return [Western::Calendar] 元旦
start_date[R]
@return [Western::Calendar] 開始日
year[R]
@return [Integer] 元号年
Public Class Methods
new(name: '', start_date: Western::Calendar.new, new_year_date: Western::Calendar.new, end_date: Western::Calendar.new, year: -1)
click to toggle source
初期化
@param [String] name 元号名 @param [Western::Calendar] start_date
開始日 @param [Western::Calendar] new_year_date
元旦 @param [Western::Calendar] end_date
終了日 @param [Integer] year 元号年
# File lib/zakuro/era/japan/gengou/type.rb, line 37 def initialize(name: '', start_date: Western::Calendar.new, new_year_date: Western::Calendar.new, end_date: Western::Calendar.new, year: -1) @name = name @start_date = start_date @new_year_date = new_year_date @end_date = end_date @year = year end
valid_date(date:)
click to toggle source
日付が有効かどうかを確認する
@param [Western::Calendar] date 日付
@return [True] 有効 @return [False] 無効
# File lib/zakuro/era/japan/gengou/type.rb, line 69 def self.valid_date(date:) return false unless date date.is_a?(Western::Calendar) end
Public Instance Methods
convert_next_start_date_to_end_date(next_start_date_string: '')
click to toggle source
次の元号の開始日から、元号の終了日に変換する
@param [String] next_start_date_string 次回開始日
# File lib/zakuro/era/japan/gengou/type.rb, line 80 def convert_next_start_date_to_end_date(next_start_date_string: '') raise ArgumentError, 'empty string cannot convert' if next_start_date_string.empty? start_date = Western::Calendar.parse(str: next_start_date_string) @end_date = start_date - 1 nil end
include?(date:)
click to toggle source
指定した日が元号に含まれるか
@param [Western::Calendar] date 日
@return [True] 含まれる @return [False] 含まれない
# File lib/zakuro/era/japan/gengou/type.rb, line 96 def include?(date:) date >= @start_date && date <= @end_date end
invalid?()
click to toggle source
不正な元号データかを確認する
@return [True] 正しくない @return [True] 正しい
# File lib/zakuro/era/japan/gengou/type.rb, line 106 def invalid? @year == -1 end
next_year()
click to toggle source
1元号年を追加する
# File lib/zakuro/era/japan/gengou/type.rb, line 113 def next_year @year += 1 unless invalid? nil end
to_s()
click to toggle source
# File lib/zakuro/era/japan/gengou/type.rb, line 118 def to_s "name: #{@name}, start_date: #{@start_date.format}, " \ "end_date: #{@end_date.format}, year: #{@year}" end
write_end_date(end_date:)
click to toggle source
終了日を更新する
@param [Western::Calendar] end_date
終了日
# File lib/zakuro/era/japan/gengou/type.rb, line 52 def write_end_date(end_date:) unless Gengou.valid_date(date: end_date) raise ArgumentError, "invalid date format. [#{end_date}]" end @end_date = end_date nil end