Methods

Class Index [+]

Quicksearch

When::CalendarTypes::SolarTerms

二十四節気

Public Instance Methods

term(date, parameter=nil, precision=When::Coordinates::DAY) click to toggle source

二十四節気の日時

  date    : When::TM::(Temporal)Position
    二十四節気を探す基準とする日時
  parameter : [num, den] or String
    num     - Numeric
      太陽黄経/度の分子 (デフォルト @num)
    den     - Numeric
      太陽黄経/度の分母 (デフォルト @den)
   (String の場合は、"#{num}/#{den}" の形式)
  precision : Integer
      取得したい時間位置の分解能(デフォルト When::Coordinates::DAY)

  returns : date またはその直後の二十四節気の日時
    When::TM::CalDate     - 二十四節気の日付
     # File when/calendartypes.rb, line 895
895:     def term(date, parameter=nil, precision=When::Coordinates::DAY)
896:       precision = nil if precision == When::Coordinates::SYSTEM
897:       num, den  = parameter.kind_of?(String) ? parameter.split(/\//, 2) : parameter
898:       num = (num || @num).to_f
899:       den = (den || @den).to_f
900:       date      = date.floor(precision) if precision
901:       options   = date._attr
902:       quot, mod = @formula.time_to_cn(date).divmod(den)
903:       cycle     = quot * den + num
904:       cycle    += den if mod > num
905:       time      = (@formula.cn_to_time(cycle) - (When::TM::JulianDate::JD19700101 - 0.5)) * When::TM::IntervalLength::DAY
906:       time      = date.time_standard.from_dynamical_time(time) if @formula.is_dynamical
907:       date      = date.frame.jul_trans(When::TM::JulianDate.new(time), options)
908:       precision ? date.floor(precision) : date
909:     end

Private Instance Methods

_normalize(args=[], options={}) click to toggle source

オブジェクトの正規化

  num   - 太陽黄経/度の分子 (デフォルト   0 - 春分)
  den   - 太陽黄経/度の分母 (デフォルト 360 - 1年)
  formula - 計算アルゴリズム(デフォルト '_e:Formula?formula=360S')
  delta - enumerator の周期 (デフォルト den/360年)
     # File when/calendartypes.rb, line 926
926:     def _normalize(args=[], options={})
927:       num, den, formula, delta = args
928:       @num     = (num || @num  ||   0).to_f
929:       @den     = (den || @den  || 360).to_f
930:       @formula = When.IRI(formula     || @formula ||'Formula?formula=360S', '_e:')
931:       @delta   = When.Duration(delta  || @delta   || When::TM::IntervalLength.new(@den/360, 'year'))
932:     end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.