Class: Zakuro::Calculation::Base::LinearGengou

Inherits:
Object
  • Object
show all
Defined in:
lib/zakuro/calculation/base/linear_gengou.rb

Overview

LinearGengou 直列元号

Constant Summary collapse

INVALID_YEAR =
-1

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(start_date: Western::Calendar.new, last_date: Western::Calendar.new, name: '', year: INVALID_YEAR) ⇒ LinearGengou

初期化

Parameters:

  • start_date (Western::Calendar) (defaults to: Western::Calendar.new)

    開始日

  • last_date (Western::Calendar) (defaults to: Western::Calendar.new)

    終了日

  • name (String) (defaults to: '')

    元号名

  • 元号年 (Integer)


34
35
36
37
38
39
40
# File 'lib/zakuro/calculation/base/linear_gengou.rb', line 34

def initialize(start_date: Western::Calendar.new, last_date: Western::Calendar.new,
               name: '', year: INVALID_YEAR)
  @start_date = start_date
  @last_date = last_date
  @name = name
  @year = year
end

Instance Attribute Details

#last_dateWestern::Calendar (readonly)

Returns 終了日.

Returns:



20
21
22
# File 'lib/zakuro/calculation/base/linear_gengou.rb', line 20

def last_date
  @last_date
end

#nameString (readonly)

Returns 元号名.

Returns:

  • (String)

    元号名



22
23
24
# File 'lib/zakuro/calculation/base/linear_gengou.rb', line 22

def name
  @name
end

#start_dateWestern::Calendar (readonly)

Returns 開始日.

Returns:



18
19
20
# File 'lib/zakuro/calculation/base/linear_gengou.rb', line 18

def start_date
  @start_date
end

#yearInteger (readonly)

Returns 年.

Returns:

  • (Integer)



24
25
26
# File 'lib/zakuro/calculation/base/linear_gengou.rb', line 24

def year
  @year
end

Instance Method Details

#include?(date: Western::Calendar.new) ⇒ True, False

範囲内か

Parameters:

Returns:

  • (True)

    範囲内

  • (False)

    範囲外



60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/zakuro/calculation/base/linear_gengou.rb', line 60

def include?(date: Western::Calendar.new)
  return false if invalid?

  return false if start_date.invalid?

  return false if last_date.invalid?

  return false if date < start_date

  return false if date > last_date

  true
end

#invalid?True, False

不正か

Returns:

  • (True)

    不正

  • (False)

    不正なし



48
49
50
# File 'lib/zakuro/calculation/base/linear_gengou.rb', line 48

def invalid?
  name == '' || year == INVALID_YEAR
end