Method: When::CalendarNote::ShireWeek#lithe
- Defined in:
- lib/when_exe/region/shire.rb
#lithe(date, parameter = nil) ⇒ When::TM::TemporalPosition
当日または直前の lithe の日
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
# File 'lib/when_exe/region/shire.rb', line 103 def lithe(date, parameter=nil) event_name = 'lithe' date = date.frame.jul_trans(date, {:events=>[event_name]}) y,m,d = date.cal_date m = date.frame.send(:_to_index,[y,m]) + 1 h,n = (m+5).divmod(7) dow = 182 * h[0] + 30 * n + d + 1 if m==8 case d when 2 ; dow = 0 when 3 ; dow = date.frame._sum([y]) == 365 ? 1 : 0 when 4 ; dow = 1 end end return date if dow == 0 date += When::TM::PeriodDuration.new([0,0,-dow]) date.events = [event_name] date end |