Sha256: 69ff54d16dc1e9f1fdd690d7d8cc3a8fac50e0cd3fbe77b5ae42320e2f993f88
Contents?: true
Size: 1.45 KB
Versions: 3
Compression:
Stored size: 1.45 KB
Contents
require "date_discreter/version" require 'active_support/all' module DateDiscreter module_function # return discrete of arg months # @param months [Array<Date,Time>] # @return [Array<Date>] if arg is continuous return empty array. def discrete_months(months) discrete_times(months, 1.month) end # return discrete of arg days # @param dates [Array<Date,Time>] # @return [Array<Date>] if arg is continuous return empty array. def discrete_days(dates) discrete_times(dates, 1.day) end # return discrete of arg hours # @param hours [Array<Time>] # @return [Array<Time>] if arg is continuous return empty array. def discrete_hours(hours) discrete_times(hours, 1.hour) end def discrete_times(target_times, degree) return [] if target_times.length < 2 sorted = target_times.sort cursor, range_upper = sorted[0], sorted[-1] filledup = [] while (cursor < range_upper) filledup << cursor cursor += degree end filledup - target_times end private_class_method :discrete_times # whether arg months are continuous # @param months [Array<Date>] def continuous_months?(months) discrete_months(months).empty? end # whether arg months are continuous # @param dates [Array<Date>] def continuous_days?(dates) discrete_days(dates).empty? end # whether arg months are continuous # @param hours [Array<Date>] def continuous_hours?(hours) discrete_hours(hours).empty? end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
date_discreter-0.0.4 | lib/date_discreter.rb |
date_discreter-0.0.3 | lib/date_discreter.rb |
date_discreter-0.0.3.beta1 | lib/date_discreter.rb |