class SlideRule::DistanceCalculators::DayOfYear

Constants

DAYS_IN_YEAR

Public Instance Methods

calculate(date_1, date_2, options={}) click to toggle source
# File lib/slide_rule/distance_calculators/day_of_year.rb, line 6
def calculate(date_1, date_2, options={})
  date_1 = cleanse_date(date_1)
  date_2 = cleanse_date(date_2)
  threshold = options[:threshold] || DAYS_IN_YEAR
  days_apart = (date_1.mjd - date_2.mjd).abs

  return 1 if days_apart >= threshold

  distance = days_apart.to_f / threshold
  distance.round(2)
end

Private Instance Methods

cleanse_date(date) click to toggle source
# File lib/slide_rule/distance_calculators/day_of_year.rb, line 20
def cleanse_date(date)
  date = Time.at(date).utc.to_date if date.is_a?(::Integer)
  date = Date.parse(date) unless date.is_a?(::Date) || date.is_a?(::Time)
  date = date.to_date if date.is_a?(::Time)

  date
end