Class: When::CalendarNote::SolarTermsRevised
- Inherits:
-
SolarTerms
- Object
- BasicTypes::Object
- TM::Object
- TM::ReferenceSystem
- When::CalendarNote
- LuniSolarPositions
- SolarTerms
- When::CalendarNote::SolarTermsRevised
- Defined in:
- lib/when_exe/ephemeris/notes.rb
Overview
冬至を定気で計算し、その他の二十四節気を前後の冬至の日時を時間で等分して求める
Constant Summary
Constants inherited from When::CalendarNote
Bahai, CalendarDepend, Chinese, CommonWithRokuyo, CommonWithSovietFiveDay, CommonWithSovietSixDay, Default, Javanese, JulianDay, Mayan, Tibetan, Yis
Constants included from Namespace
Namespace::DC, Namespace::DCQ, Namespace::DCT, Namespace::FOAF, Namespace::OWL, Namespace::RDF, Namespace::RDFC, Namespace::RDFS, Namespace::RSS, Namespace::XSD
Instance Attribute Summary
Attributes inherited from LuniSolarPositions
#delta, #den, #formula, #margin, #num
Attributes inherited from When::CalendarNote
Attributes inherited from TM::ReferenceSystem
#domain_of_validity, #position
Attributes inherited from BasicTypes::Object
Attributes included from Parts::Resource
#child, #keys, #locale, #namespace
Instance Method Summary collapse
-
#_the_date(date, num, den) ⇒ Object
the event date.
Methods inherited from LuniSolarPositions
_setup_, _setup_info, #event_eval, #position
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
#[], #^, _instance, _setup_, _setup_info, base_uri, #each, #enum_for, #hierarchy, #include?, #included?, #iri, #leaf?, #m17n, #map, #parent, #registered?, root_dir
Methods included from Parts::Resource::Pool
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class When::Parts::Resource
Instance Method Details
#_the_date(date, num, den) ⇒ Object
the event date
192 193 194 195 196 197 198 199 200 201 202 203 |
# File 'lib/when_exe/ephemeris/notes.rb', line 192 def _the_date(date, num, den) quot, mod = @formula.time_to_cn(date).divmod(12) quot += 1 if mod >= 9 range = [12*quot-3, 12*quot+9].map {|cn| [cn*30, @formula.cn_to_time(cn)]} time = @formula.is_dynamical ? +date : date.to_f now = [range[0][0] + (range[1][0] - range[0][0]) / (range[1][1] - range[0][1]) * (time - range[0][1]), time] quot, mod = now[0].divmod(den) cycle = quot * den + num cycle += den if mod > (num % den) range[0][1] + (range[1][1] - range[0][1]) / (range[1][0] - range[0][0]) * (cycle - range[0][0]) end |