Class: When::CalendarTypes::ChineseSolar

Inherits:
EphemerisBasedSolar show all
Defined in:
lib/when_exe/region/chinese.rb

Overview

Chinese Solar Calendar

Constant Summary

Constants inherited from TM::Calendar

TM::Calendar::HashProperty

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 collapse

Attributes inherited from EphemerisBased

#formula

Attributes inherited from TM::Calendar

#diff_to_CE, #epoch_in_CE, #reference_frame, #time_basis

Attributes included from TimeStandard::TimeBasis

#_time_basis

Attributes inherited from TM::ReferenceSystem

#domain_of_validity, #position

Attributes inherited from BasicTypes::Object

#label

Attributes included from Parts::Resource

#_pool, #child, #keys, #locale, #namespace

Class Method Summary collapse

Methods inherited from EphemerisBasedSolar

#_new_month_

Methods inherited from EphemerisBased

#_coordinates_to_number, #_length, #_number_to_coordinates, #_sum_

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

#_normalize_time_basis

Methods included from When::Coordinates

to_deg, to_deg_225, to_dms

Methods inherited from TM::ReferenceSystem

#domain, #name

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

#synchronize

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class When::Parts::Resource

Instance Attribute Details

#doyoObject (readonly)



812
813
814
# File 'lib/when_exe/region/chinese.rb', line 812

def doyo
  @doyo
end

#twinWhen::CalendarTypes::ChineseLuniSolar (readonly)

Returns 対で用いる太陰太陽暦の名前.

Returns:



809
810
811
# File 'lib/when_exe/region/chinese.rb', line 809

def twin
  @twin
end

Class Method Details

.change_unit(unit, definition) ⇒ Object

盈縮差の表の時間の単位を調整する



793
794
795
796
797
798
799
800
801
802
803
# File 'lib/when_exe/region/chinese.rb', line 793

def change_unit(unit, definition)
  definition.map {|line|
    line.map {|item|
      case item
      when Range   ; Range.new(item.first*unit, item.last*unit, item.exclude_end?)
      when Numeric ; item*unit
      else         ; item
      end
    }
  }
end

.twin(area, definition) ⇒ Object

太陰太陽暦の定義から太陰太陽暦と太陽暦(節月)の組を作る



775
776
777
778
779
780
781
782
783
784
785
786
787
# File 'lib/when_exe/region/chinese.rb', line 775

def twin(area, definition)
  definition.inject([]) {|list, cal|
    if cal.kind_of?(Array) && cal[0] == ChineseLuniSolar
      solar_name  = cal[1].sub(/=?\]/, '(節月)=]')
      lunisolar   = cal.dup << "twin:#{area}::" + solar_name.gsub(/(name:\[|=?\])/,'')
      solar       = cal.dup << "twin:#{area}::" + cal[1].gsub(/(name:\[|=?\])/,'')
      solar[0..1] = [ChineseSolar, solar_name]
      list << lunisolar << solar
    else
      list << cal
    end
  }
end