Class: When::CalendarTypes::CalendarNote::JapaneseNote::Dates

Inherits:
Object
  • Object
show all
Defined in:
lib/when_exe/region/japanese_notes.rb

Overview

日本暦注計算に必要となる暦日や暦法をまとめた内部クラス

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(date, year, calendar, doyo = nil) ⇒ Dates

初期設定



316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
# File 'lib/when_exe/region/japanese_notes.rb', line 316

def initialize(date, year, calendar, doyo=nil)
  case calendar
  when Array      # 日本製定朔平気法
    l_calendar = When.Calendar('ChineseLuniSolar?' + calendar[0])
    s_calendar = When.Calendar('Chinese::' + calendar[1])
  when /timezone/ # 定朔定気法
    l_calendar = When.Calendar('ChineseLuniSolar?' + calendar)
    s_calendar = When.Calendar('ChineseSolar?'     + calendar)
  else            # 中国製平定朔平気法
    l_calendar = When.Calendar('Chinese::' + calendar)
    s_calendar = When.Calendar('Chinese::' + calendar + '(節月)')
  end

  @year     = year
  @calendar = calendar
  @doyo     = doyo
  @o_date   = date
  @l_date   = l_calendar ^ date
  @m_date   = date.frame.kind_of?(When::CalendarTypes::Julian) ? @l_date : date
  @s_date   = s_calendar ^ date
  @s_terms  = When::CalendarTypes::CalendarNote::SolarTerms.new('formula'=>s_calendar.formula[0])
  @l_phases = When::CalendarTypes::CalendarNote::LunarPhases.new('formula'=>l_calendar.formula[-1])
end

Instance Attribute Details

#calendarObject (readonly)



292
293
294
# File 'lib/when_exe/region/japanese_notes.rb', line 292

def calendar
  @calendar
end

#doyoObject (readonly)



292
293
294
# File 'lib/when_exe/region/japanese_notes.rb', line 292

def doyo
  @doyo
end

#l_dateObject (readonly)



292
293
294
# File 'lib/when_exe/region/japanese_notes.rb', line 292

def l_date
  @l_date
end

#l_phasesObject (readonly)



292
293
294
# File 'lib/when_exe/region/japanese_notes.rb', line 292

def l_phases
  @l_phases
end

#m_dateObject (readonly)



292
293
294
# File 'lib/when_exe/region/japanese_notes.rb', line 292

def m_date
  @m_date
end

#o_dateObject (readonly)



292
293
294
# File 'lib/when_exe/region/japanese_notes.rb', line 292

def o_date
  @o_date
end

#s_dateObject (readonly)



292
293
294
# File 'lib/when_exe/region/japanese_notes.rb', line 292

def s_date
  @s_date
end

#s_termsObject (readonly)



292
293
294
# File 'lib/when_exe/region/japanese_notes.rb', line 292

def s_terms
  @s_terms
end

#yearObject (readonly)



292
293
294
# File 'lib/when_exe/region/japanese_notes.rb', line 292

def year
  @year
end

Instance Method Details

#index_gObject

具注暦の配置パターン



296
297
298
299
300
301
302
# File 'lib/when_exe/region/japanese_notes.rb', line 296

def index_g
  return @index_g if @index_g
  @index_g = (@year < 1004) ? 0 : # 御堂関白記(前期)以前
             (@year < 1185) ? 1 : # 御堂関白記(後期)
             (@year < 1338) ? 2 : # 鎌倉時代
                              3   # 室町時代以降
end

#index_sObject

七十二候パターン



306
307
308
309
310
311
312
# File 'lib/when_exe/region/japanese_notes.rb', line 306

def index_s
  return @index_s if @index_s
  @index_s = (@year < 1685) ? 1 : # 宣明暦式
             (@year < 1755) ? 2 : # 貞享暦式
             (@year < 1874) ? 3 : # 宝暦暦式
                              4   # 略本暦式
end