Skip to content

Repository files navigation

Build Status

This latest version of the gem works with ActiveSupport 5.1. For prior version, check out v0.6.x-activesupport42

TimeDifference

TimeDifference is the missing Ruby method to calculate difference between two given time. You can do a Ruby time difference in year, month, week, day, hour, minute, and seconds.

Installation

Add this line to your application's Gemfile:

gem'time_difference'

And then execute:

$ bundle install

Usage

Works for Time, DateTime, and Date

# Timestart_time=Time.new(2013,1)end_time=Time.new(2014,1)TimeDifference.between(start_time,end_time).in_years=>1.0# DateTimestart_time=DateTime.new(2013,1)end_time=DateTime.new(2014,1)TimeDifference.between(start_time,end_time).in_years=>1.0# Datestart_time=Date.new(2013,1)end_time=Date.new(2014,1)TimeDifference.between(start_time,end_time).in_years=>1.0

Get the time difference in various units

start_time=Time.new(2013,1)end_time=Time.new(2014,1)TimeDifference.between(start_time,end_time).in_years=>1.0TimeDifference.between(start_time,end_time).in_months=>12.0TimeDifference.between(start_time,end_time).in_weeks=>52.14TimeDifference.between(start_time,end_time).in_days=>365.0TimeDifference.between(start_time,end_time).in_hours=>8760.0TimeDifference.between(start_time,end_time).in_minutes=>525600.0TimeDifference.between(start_time,end_time).in_seconds=>31536000.0

Get the time difference in each component

start_time=Time.new(2013,1)end_time=Time.new(2014,1)TimeDifference.between(start_time,end_time).in_each_component=>{:years=>1.0,:months=>12.0,:weeks=>52.14,:days=>365.0,:hours=>8760.0,:minutes=>525600.0,:seconds=>31536000.0}

If you would like an overall estimated time component, use in_general(not that accurate)

start_time=Time.new(2013,1)end_time=Time.new(2014,1)TimeDifference.between(start_time,end_time).in_general=>{:years=>0,:months=>12,:weeks=>0,:days=>5,:hours=>0,:minutes=>0,:seconds=>0}

You can also get in_general as a human readable string, using humanize

start_time=Time.new(2013,1)end_time=Time.new(2014,1)TimeDifference.between(start_time,end_time).humanize=>"12 Months and 5 Days"

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

About

The missing Ruby method to print out time difference (duration) in year, month, week, day, hour, minute, and second.

Resources

Stars

0 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages