Ruby-units extends Time, Date, and DateTime to allow natural duration arithmetic.
Adding/Subtracting Durations:
Time.now + Unit.new("10 min")Date.today - Unit.new("30 days")
Note on Large Units: When using years, decades, or centuries, the duration is converted to days and rounded to maintain calendar accuracy (e.g., 1 year $\approx$ 365 days). For precision, use hours or minutes.
Converting Time to Units:
Time.now.to_unit: Returns duration in seconds since epoch.Date.today.to_unit('week'): Returns duration in weeks since Julian calendar start.
Creating Time from Units:
Time.at(Unit.new("1 hour"))Time.in('5 min'): Shorthand for future times.
Time.now + Unit.new("10 min") #=> 10 minutes from now
Time.now.to_unit('hours') #=> Duration in hours since epoch
Time.in('2 hours') #=> 2 hours from now