Class Index [+]

Quicksearch

When::CalendarTypes::Indian

Indian Luni-Solar Calendar

Public Instance Methods

_ids_(date) click to toggle source

日時要素の翻訳表の取得

  引数パターン1
    date    : [y]
      y - 年

    returns : [When::Coordinates::Pair]
      1年の月の配置の翻訳表

  引数パターン2
    date    : [y, m]
      y - 年
      m - 月(0 始まりの通番)

    returns : [When::Coordinates::Pair]
      1月の日の配置の翻訳表
     # File when/region/indian.rb, line 241
241:       def _ids_(date)
242:         y, m = date
243:         y    = +y
244:         mm   = _new_year_month(y)
245:         return (_table(_new_month_(mm+m.to_i)) {|i| _new_month(mm+m+i/15.0)}) if m
246:         table = (0...26).to_a.map {|i| _tithi_to_coordinates((mm+i)*15)[1]}
247:         table.pop while table[1].trunk < 11
248:         return table
249:       end
_new_month_(m) click to toggle source

月初の通日

  m       : 通月

  returns : 月初の通日
     # File when/region/indian.rb, line 184
184:       def _new_month_(m)
185:         new_moon_time = @formula[1].cn_to_time(m)
186:         new_moon_date = (new_moon_time + 0.5 + @formula[1].long/360.0).floor
187:         sun_rise_time = @formula[1].sun_rise(new_moon_date)
188:         (sun_rise_time >= new_moon_time) ? new_moon_date : new_moon_date+1
189:       end
_new_year_month_(y) click to toggle source

年初の通月

  y       : 年

  returns : 年初の通月
     # File when/region/indian.rb, line 197
197:       def _new_year_month_(y)
198:         (Residue.mod(y-1) {|t| _tithi_to_coordinates(t*15)[0]})[0] + 1
199:       end
_tithi_to_coordinates(tithi) click to toggle source

朔望日 -> 年・月・日

  tithi   : 朔望日(月の位相 / (CIRCLE/30))

  returns : [y, m, d]
    y - 年(Integer)
    m - 月(When::Coordinates::Pair)
    d - 日(Integer)
     # File when/region/indian.rb, line 210
210:       def _tithi_to_coordinates(tithi)
211:         m, d = tithi.divmod(30)
212:         s    = [0,1,2].map {|i| (@formula[0].time_to_cn(30*(m+i)) - @cycle_offset).floor + 1 }
213:         f    = s[0]==s[1]
214:         if (d >= 15.0)
215:           d -=  15
216:           b  = true
217:           n  = true   unless @indian_style==0
218:           f  = s[1]==s[2] if @indian_style==1
219:         end
220:         y, m = (n ? s[1] : s[0]).divmod(12)
221:         return [y-@year_epoch, Pair._force_pair(m+1, LEAP_MAP[[b,f]][@indian_style]), d.floor]
222:       end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.