Class: When::CalendarNote::JapaneseLuniSolarNote
- Inherits:
-
When::CalendarNote
- Object
- BasicTypes::Object
- TM::Object
- TM::ReferenceSystem
- When::CalendarNote
- When::CalendarNote::JapaneseLuniSolarNote
- Defined in:
- lib/when_exe/region/japanese/notes.rb
Overview
太陰太陽暦の暦注
Constant Summary collapse
- StarMansions =
変換表 月日→27宿
[ # 正 2 3 4 5 6 7 8 9 10 11 12 [11, 13, 15, 17, 19, 21, 24, 0, 2, 4, 7, 9], # 0 : 本月本説 室12奎14胃16畢18參20鬼22張25角00氐02心04斗07虛10 [ 5, 3, 1, 25, 23, 21, 19, 16, 14, 11, 8, 7], # 1 : 本月異説 尾05房03亢01翼26星24鬼22參20昴17婁15室12女09斗07 [14, 16, 18, 20, 22, 24, 0, 3, 5, 7, 10, 12], # 2 : 閏月本説 婁15昴17觜19井21柳23張25角00房03尾05斗07危11壁13 [12, 14, 16, 18, 19, 21, 24, 0, 2, 5, 8, 10], # 3 : 閏月異説 壁13婁15昴17觜19參20鬼22張25角00氐02尾05女09危11 [14, 16, 18, 23, 22, 24, 0, 3, 5, 7, 8, 12] # 4 : 閏月本説(元) (星24) (女09) ]
- StarMansionIndex =
変換表 27宿→28宿
(0..7).to_a + (9..27).to_a
- WeekDepended =
七曜と27宿で決まる暦注
{ # 日 月 火 水 木 金 土 '甘露' => [26, 17, 5, 22, 21, 3, 23], # 軫27 畢18 尾05 柳23 鬼22 房03 星24 '金剛峯' => [ 5, 8, 12, 16, 20, 24, 1], # 尾05 女09 壁13 昴17 井21 張25 亢01 '羅刹' => [15, 21, 25, 19, 2, 13, 22] # 胃16 鬼22 翼26 参20 氐02 奎14 柳23 }
- HumanBody =
人神配当
%w(足大指 外踝 股内 腰 口 手 内踝 腕 尻 腰背 鼻柱 髪際 牙歯 胃管 遍身 胸 気街 股内 足 踝 足小指 足踝及胸、目下 肝及足 手陽明 足陽明 胸 膝 陰 膝晊 足跌)
Constants inherited from When::CalendarNote
Bahai, CalendarDepend, Chinese, CommonWithRokuyo, CommonWithSovietFiveDay, CommonWithSovietSixDay, Default, HashProperty, Javanese, JulianDay, Mayan, Tibetan, Yis
Constants included from Parts::Resource
Parts::Resource::ConstList, Parts::Resource::ConstTypes, Parts::Resource::IRIDecode, Parts::Resource::IRIDecodeTable, Parts::Resource::IRIEncode, Parts::Resource::IRIEncodeTable, Parts::Resource::IRIHeader, Parts::Resource::LabelProperty
Instance Attribute Summary
Attributes inherited from When::CalendarNote
Attributes inherited from TM::ReferenceSystem
#domain_of_validity, #position
Attributes inherited from BasicTypes::Object
Attributes included from Parts::Resource
#_pool, #child, #keys, #locale, #namespace
Class Method Summary collapse
-
._day_notes(notes, dates, conditions = {}) ⇒ Object
日の暦注.
-
._month_notes(notes, dates, conditions = {}) ⇒ Object
月の暦注.
Methods inherited from When::CalendarNote
#copy, #day, #duration, #enum_for, #include?, #month, #note?, #notes, #year
Methods inherited from TM::ReferenceSystem
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
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class When::Parts::Resource
Class Method Details
._day_notes(notes, dates, conditions = {}) ⇒ Object
日の暦注
941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 |
# File 'lib/when_exe/region/japanese/notes.rb', line 941 def self._day_notes(notes, dates, conditions={}) # 廿七宿 m, l = [1,0].map {|f| dates.m_date.cal_date[1] * f} d = (StarMansions[l==1 ? (conditions[:i27]||0) : (conditions[:n27]||0)][m-1] + dates.m_date.cal_date[2] - 1) % 27 notes['廿七宿'] ||= StarMansionIndex[d] # 甘露 / 金剛峯 / 羅刹 w = (dates.m_date.to_i + 1) % 7 ['甘露', '金剛峯', '羅刹'].each do |c| notes[c] = c if d == WeekDepended[c][w] end # 三寶吉・神吉・雑事吉・小字注 (凶会日は表引きの時点で抑制済み) notes['神吉'] = notes['雑事吉'] = notes['三寶吉'] = notes['小字注'] = nil if notes['没'] || notes['滅'] notes['神吉'] = notes['雑事吉'] = nil if notes['往亡'] notes['神吉'] = notes['三寶吉'] = nil if notes['月食'] notes['小字注'] = nil if notes['日食'] || notes['月食'] notes['小字注'] = nil if notes['九坎'] && dates.range==5 # 11世紀後半 notes['三寶吉'] = nil if notes['羅刹'] notes['三寶吉'] = notes['甘露'] ? '三寶吉' : nil if /\+/ =~ notes['三寶吉'].to_s notes['三寶吉'] = '三吉' if notes['三寶吉'] && dates.range >= 8 # 鎌倉以降 # 除手足甲 & 道虚・人神配当 y,m0,d0 = dates.m_date.cal_date misoka = m0 != (dates.m_date + When.Duration('P1D')).cal_date[1] if d0 == 29 notes['除手足甲'] = '除手足甲' if ([6,16,30].include?(d0) || misoka) && !(conditions[:kana] || notes['没'] || notes['滅'] || notes['凶会']) notes['道虚'] = '道虚' if d0 % 6 == 0 || misoka notes['人神配当'] = HumanBody[d0-1] # 仮名暦 notes['赤舌' ] ||= d0 == (m * 5 - 3) % 6 + 1 ? '赤舌' : nil notes['大赤' ] ||= d0 % 8 == (m * 7 - 3) % 8 ? '大赤' : nil notes['不成就'] ||= d0 % 8 == [6,3,2,1,4,5][m % 6] ? '不成就' : nil # 『現代こよみ読み解き事典』 for 不成就日(ただし6・12月晦日は無効化) notes['六曜' ] ||= When::RokuyoWeek.rokuyo_value(m, d0) notes end |
._month_notes(notes, dates, conditions = {}) ⇒ Object
月の暦注
934 935 936 937 |
# File 'lib/when_exe/region/japanese/notes.rb', line 934 def self._month_notes(notes, dates, conditions={}) # 月名 notes['月名'] ||= dates.o_date.name('month') end |