Class: When::CalendarTypes::TableBased
- Inherits:
-
TM::Calendar
- Object
- BasicTypes::Object
- TM::Object
- TM::ReferenceSystem
- TM::Calendar
- When::CalendarTypes::TableBased
- Defined in:
- lib/when_exe/calendartypes.rb
Overview
月日の配当パターンの種類が限定されている暦の抽象基底クラス
Calendar which has some fixed arrangement rules for under year
新年の日付が専用メソッドで与えられ、月日の配当が1年の日数等
で決まる暦。いわゆる Rule-Based な暦はほとんど該当します。
Direct Known Subclasses
CyclicTableBased, Jewish, PatternTableBasedLuniSolar, SolarYearTableBased, ThaiP, WeekDate
Constant Summary
Constants inherited from TM::Calendar
Constants included from When::Coordinates
When::Coordinates::Bahai, When::Coordinates::Chinese, When::Coordinates::Common, When::Coordinates::DefaultDateIndices, When::Coordinates::DefaultDayIndex, When::Coordinates::DefaultTimeIndices, When::Coordinates::Indian, When::Coordinates::Iranian, When::Coordinates::Javanese, When::Coordinates::MATCH, When::Coordinates::Mayan, When::Coordinates::PERIOD, When::Coordinates::PERIOD_NAME, When::Coordinates::PRECISION, When::Coordinates::PRECISION_NAME, When::Coordinates::Russian, When::Coordinates::Tibetan, When::Coordinates::VALUE, When::Coordinates::Yi
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 TM::Calendar
#diff_to_CE, #epoch_in_CE, #reference_frame, #time_basis
Attributes included from TimeStandard::TimeBasis
Attributes inherited from TM::ReferenceSystem
#domain_of_validity, #position
Attributes inherited from BasicTypes::Object
Attributes included from Parts::Resource
#_pool, #child, #keys, #locale, #namespace
Instance Method Summary collapse
-
#_coordinates_to_number(y, m, d) ⇒ Integer
年月日 -> 通日.
-
#_length(date) ⇒ Object
暦要素数.
-
#_number_to_coordinates(sdn) ⇒ Array<Integer>
通日 - > 年月日.
Methods inherited from TM::Calendar
#_new_month_, _setup_, #_to_month_number_, #date_trans, #jul_trans, #rate_of_clock, #strftime, #time_standard, #to_cal_date, #to_julian_date, #to_universal_time
Methods included from TimeStandard::TimeBasis
Methods included from When::Coordinates
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
Instance Method Details
#_coordinates_to_number(y, m, d) ⇒ Integer
年月日 -> 通日
373 374 375 376 377 378 379 |
# File 'lib/when_exe/calendartypes.rb', line 373 def _coordinates_to_number(y, m, d) sdn = _sdn([+y]) rule = _rule(_key([+y])) sdn += d + rule['Offset'][m] return sdn if d >= 0 return sdn + rule['Length'][m % rule['Length'].length] end |
#_length(date) ⇒ Integer #_length(date) ⇒ Integer
暦要素数
420 421 422 423 424 425 426 427 428 429 430 431 432 |
# File 'lib/when_exe/calendartypes.rb', line 420 def _length(date) y, m = date if (m) # 指定した月に含まれる日の数を返します。 return @unit[2] if @unit[2] rule = _rule(_key([y])) return rule['Length'][m % rule['Length'].length] else # 指定した年に含まれる月の数を返します。 return @unit[1] if @unit[1] return _rule(_key([y]))['Months'] end end |
#_number_to_coordinates(sdn) ⇒ Array<Integer>
通日 - > 年月日
390 391 392 393 394 395 396 397 398 399 400 |
# File 'lib/when_exe/calendartypes.rb', line 390 def _number_to_coordinates(sdn) y, d = Residue.mod(sdn) {|n| _sdn([n])} rule = _rule(_key([y])) (rule['Months']-1).downto(0) do |m| if d >=rule['Offset'][m] d -= rule['Offset'][m] return [y, m, d] end end return nil end |