Class: When::CalendarTypes::EphemerisBasedLuniSolar

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

Overview

月日の配当が太陽および月の位置によって決定される太陰太陽暦

Calendar based on the ephemeris of the Sun and the Moon

Direct Known Subclasses

ChineseLuniSolar, HinduLuniSolar, Tibetan

Constant Summary

Constants included from When::Coordinates

When::Coordinates::Bahai, When::Coordinates::CommonResidue, When::Coordinates::DefaultDateIndices, When::Coordinates::DefaultDayIndex, When::Coordinates::DefaultTimeIndices, When::Coordinates::IndianCities, 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::Tibetan, When::Coordinates::VALUE, When::Coordinates::Yi

Constants included from Parts::Resource

Parts::Resource::LabelProperty

Instance Attribute Summary collapse

Attributes inherited from TM::Calendar

#reference_frame, #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

Instance Method Summary collapse

Methods inherited from TM::Calendar

_setup_, #_to_month_number_, #date_trans, #jul_trans, #rate_of_clock, #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_dms

Methods inherited from TM::ReferenceSystem

#domain, #name

Methods included from Parts::Resource

#[], #^, _decode, _encode, _extract_prefix, _instance, _parse, _path_with_prefix, _replace_tags, _setup_, #each, #enum_for, #hierarchy, #include?, #included?, #iri, #leaf?, #m17n, #map, #next, #parent, #prev, #registered?

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

#formulaArray<When::Ephemeris::Formula> (readonly)

計算方法



802
803
804
# File 'lib/when_exe/calendartypes.rb', line 802

def formula
  @formula
end

Instance Method Details

#_coordinates_to_number(yy, mm = 0, dd = 0) ⇒ Integer

年月日 -> 通日

Parameters:

  • yy (Numeric)

  • mm (Integer) (defaults to: 0)

    月 (0 始まり)

  • dd (Integer) (defaults to: 0)

    日 (0 始まり)

Returns:

  • (Integer)

    通日



814
815
816
# File 'lib/when_exe/calendartypes.rb', line 814

def _coordinates_to_number(yy, mm=0, dd=0)
  _new_month(_new_year_month(+yy) + mm) + dd
end

#_length(date) ⇒ Integer #_length(date) ⇒ Integer

暦要素数

Overloads:

  • #_length(date) ⇒ Integer

    Returns その年の月数.

    Parameters:

    • date (Array<Integer>)

      ( 年 )

    Returns:

    • (Integer)

      その年の月数

  • #_length(date) ⇒ Integer
    Note:

    月は 0 始まり

    Returns その年月の日数.

    Parameters:

    • date (Array<Integer>)

      ( 年, 月 )

    Returns:

    • (Integer)

      その年月の日数



844
845
846
847
848
849
850
851
852
853
854
# File 'lib/when_exe/calendartypes.rb', line 844

def _length(date)
  y, m = date
  if (m)
    #  指定した月に含まれる日の数を返します。
    m += _new_year_month(+y)
    return _new_month(m+1) - _new_month(m)
  else
    #  指定した年に含まれる月の数を返します。
    return _ids([y]).length
  end
end

#_number_to_coordinates(sdn) ⇒ Array<Integer>

通日 - > 年月日

Parameters:

  • sdn (Integer)

    通日

Returns:

  • (Array<Integer>)

    ( y, m, d )

    y 年
    m 月 (0 始まり)
    d 日 (0 始まり)


827
828
829
830
831
# File 'lib/when_exe/calendartypes.rb', line 827

def _number_to_coordinates(sdn)
  nn, dd = Residue.mod(sdn) {|m| _new_month(m)}
  yy, mm = Residue.mod(nn)  {|y| _new_year_month(y)}
  [yy, mm, dd]
end