Class: When::Coordinates::StemBranch
- Inherits:
-
Residue
- Object
- BasicTypes::Object
- Residue
- When::Coordinates::StemBranch
- Defined in:
- lib/when_exe/region/residue.rb,
lib/when_exe/region/japanese/residues.rb
Overview
六十干支
Constant Summary
Constants inherited from Residue
Constants included from Parts::Resource
Parts::Resource::ConstList, Parts::Resource::ConstTypes, Parts::Resource::IRIHeader, Parts::Resource::LabelProperty
Instance Attribute Summary
Attributes inherited from Residue
#carry, #divisor, #remainder, #units
Attributes inherited from BasicTypes::Object
Attributes included from Parts::Resource
#_pool, #child, #keys, #locale, #namespace
Instance Method Summary collapse
-
#_day_notes(notes = {}, dates = nil, conditions = {}) ⇒ Object
日の六十干支で決まる暦注.
-
#_month_notes(notes = {}, dates = nil, conditions = {}) ⇒ Object
月の六十干支で決まる暦注.
-
#_year_notes(notes = {}, dates = nil, conditions = {}) ⇒ Object
年の六十干支で決まる暦注.
Methods inherited from Residue
#%, #&, #+, #-, #<<, #>>, #[], _china, #_column_for_week_included, _day_of_week, #_enumerator, #_range_for_week_included, day_of_week, #difference, #duration, #event, #initialize, mod, #to, #to_m17n, #to_s
Methods included from Parts::Resource
#[], #^, _abbreviation_to_iri, _decode, _encode, _extract_prefix, _instance, _instantiate, _parse, _path_with_prefix, _replace_tags, _setup_, _setup_info, _simplify_path, base_uri, #each, #enum_for, #hierarchy, #include?, #included?, #iri, #leaf?, #m17n, #map, #next, #parent, #prev, #registered?, root_dir
Methods included from Parts::Resource::Pool
#[], #[]=, #_pool, #_setup_, #pool_keys
Methods included from Parts::Resource::Synchronize
Constructor Details
This class inherits a constructor from When::Coordinates::Residue
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class When::Coordinates::Residue
Instance Method Details
#_day_notes(notes = {}, dates = nil, conditions = {}) ⇒ Object
日の六十干支で決まる暦注
288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 |
# File 'lib/when_exe/region/japanese/residues.rb', line 288 def _day_notes(notes={}, dates=nil, conditions={}) year, month = dates.s_date.cal_date # 具注暦(元嘉暦以来) notes['納音'] ||= Rules['納音'][@remainder / 2] notes['日遊'] ||= dates.range < 2 ? Rules['日遊'][@remainder] : [4,5,14,15,24,25,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,54,55].include?(@remainder) ? '内' : nil notes['天赦'] ||= @remainder == [14,30,44,00][(month-1)/3] ? '天赦' : nil # 宣明暦以前は節月、貞享暦以後は暦月 # m = dates.range < 11 ? month : (dates.m_date.cal_date[1] * 1) m = month # 凶会日 kue = Rules['凶会'][m-1][@remainder] # 貞享暦で廃止された凶会日を除外 kue = dates.range < 11 ? kue.sub(/\+/, '') : nil if /\+/ =~ kue notes['凶会'] = kue # 凶会日に省略される吉日 _notes_without_kue(notes, month, dates.range < 2 ? '歳' : '大歳', conditions) unless notes['凶会'] # 具注暦(大衍暦以来) notes['天一'] ||= begin note = Rules['天一'][@remainder] dates.range >= 15 ? note.dup.sub!(/天上始/, '天上') : dates.range >= 11 ? note : note.dup.sub!(/始/, '') end notes['土公'] ||= Rules['土公'][@remainder] notes['五墓'] ||= [4,22,28,31,37].include?(@remainder) ? '五墓' : nil notes['伐' ] ||= [6,12,14,15,17,19,20,21,23,28,49,58].include?(@remainder) ? '伐' : nil # 節年に依存する暦注 div, mod = @remainder.divmod(12) base_dir = Rules['環'][year % 12] move_dir = Rules['遊'][div] unless base_dir == move_dir event = '遊' + move_dir if mod == 0 event = '環' + base_dir if mod == 5 end notes['大將軍'] ||= event notes['歳下食'] ||= @remainder == [33,22,47,36,13,26,3,28,53,42,43,56][year % 12] ? '歳下食' : nil # 節月に依存する暦注 notes['天間'] ||= (@remainder % 30) == [23,0,1,2,3,22][(month-1) % 6] ? '天間' : nil notes['八龍'] ||= (month-1) / 3 == 0 && [ 0,11].include?(@remainder) ? '八龍' : nil notes['七鳥'] ||= (month-1) / 3 == 1 && [12,23].include?(@remainder) ? '七鳥' : nil notes['九虎'] ||= (month-1) / 3 == 2 && [36,47].include?(@remainder) ? '九虎' : nil notes['六蛇'] ||= (month-1) / 3 == 3 && [48,59].include?(@remainder) ? '六蛇' : nil # 宣明暦以前は節月、貞享暦以後は暦月? notes['三寶吉'], notes['神吉'], notes['雑事吉'], notes['小字注'], kana = Rules['吉事注'][m-1][@remainder] if conditions[:kana] if kana && dates.m_date.ceil(YEAR,MONTH).prev != dates.m_date # 最後の月以外は年末行事を削除する kana = kana.dup kana.sub!(/すゝはらひ\s?/, '') kana.sub!(/正月ことはしめ\s?/, '') kana.strip! kana = nil if kana == '' end notes['小字注'] = kana notes['神吉'] = '(神吉)' if notes['神吉'] && Rules['神吉'][@remainder][12-month] == 0 end # 仮名暦 # notes['大明'] ||= [5,6,7,8,9,13,15,18,20,23,28,31,38,40,41,42,43,45,46,47,52,54,55,56,57].include?(@remainder) ? '大明' : nil notes['大明'] ||= [ 7,8,9,13,15,18,20,23,28,31,38,40,41,42, 45,46,47,52, 55,56,57].include?(@remainder) ? '大明' : nil unless notes['金神遊行'] div, mod = @remainder.divmod(12) note = (2..6).include?(mod) ? '平素' + Rules['平素遊行'][div] : '' range, dir = Rules['四季遊行'][(month-1) / 3] note += range.include?(@remainder) ? '四季' + dir : '' notes['金神遊行'] = note == '' ? nil : note end notes['甲子待'] ||= @remainder == 0 ? '甲子待' : nil notes['己巳' ] ||= @remainder == 5 ? '己巳' : nil notes['庚申待'] ||= @remainder == 56 ? '庚申待' : nil notes['犯土' ] ||= [7,8,9,10,11].include?(@remainder) ? '大犯土' : {6 =>'大犯土始', 12=>'大犯土終', 13=>'犯土間日'}[@remainder] notes['犯土' ] ||= [15,16,17,18,19].include?(@remainder) ? '小犯土' : {14=>'小犯土始', 20=>'小犯土終'}[@remainder] notes['十方暮'] ||= [21,22,23,24,25,26,27,28].include?(@remainder) ? '十方暮' : {20=>'十方暮始', 29=>'十方暮終'}[@remainder] unless notes['八專'] note = Rules['八專'][@remainder] note = note.sub('始','入') if note && (9..10).include?(dates.range) notes['八專'] = note end notes['八專間日'] ||= [49,52,54,58].include?(@remainder) ? '八專間日' : nil end |
#_month_notes(notes = {}, dates = nil, conditions = {}) ⇒ Object
月の六十干支で決まる暦注
280 281 282 283 |
# File 'lib/when_exe/region/japanese/residues.rb', line 280 def _month_notes(notes={}, dates=nil, conditions={}) notes['月建'] ||= self notes end |
#_year_notes(notes = {}, dates = nil, conditions = {}) ⇒ Object
年の六十干支で決まる暦注
268 269 270 271 272 273 274 275 |
# File 'lib/when_exe/region/japanese/residues.rb', line 268 def _year_notes(notes={}, dates=nil, conditions={}) unless dates.range < 2 notes['大歳壇'] ||= '干' + Rules['大歳壇干'][(@remainder / 2) % 5] + '支' + Rules['大歳壇支'][@remainder % 12] end notes['納音'] ||= Rules['納音'][@remainder / 2] notes['大歳'] ||= self notes end |