saasbook

decompose_conditional.rb

Mar 13th, 2014
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 0.66 KB | None | 0 0
  1. # NOTE: line 7 fixes bug in original version
  2. class TimeSetter
  3.   ORIGIN_YEAR = 1980
  4.   def self.calculate_current_year(days_since_origin)
  5.     @@year = ORIGIN_YEAR
  6.     @@days_remaining = days_since_origin
  7.     while (@@days_remaining > 365) do
  8.       if leap_year?
  9.         peel_off_leap_year!
  10.       else
  11.         peel_off_regular_year!
  12.       end
  13.     end
  14.     return @@year
  15.   end
  16.   private
  17.   def peel_off_leap_year!
  18.     if (@@days_remaining >= 366)
  19.       @@days_remaining -= 366 ; @@year += 1
  20.     end
  21.   end
  22.   def peel_off_regular_year!
  23.     @@days_remaining -= 365 ; @@year += 1
  24.   end
  25.   def self.leap_year?
  26.     @@year % 400 == 0 ||
  27.       (@@year % 4 == 0 && @@year % 100 != 0)
  28.   end
  29. end
Add Comment
Please, Sign In to add comment