The missing Ruby method to print out time difference (duration) in year, month, week, day, hour, minute, and second.
This latest version of the gem works with ActiveSupport 5.1. For prior version, check out v0.6.x-activesupport42
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.
Add this line to your application’s Gemfile:
gem 'time_difference'
And then execute:
$ bundle install
# Time
start_time = Time.new(2013,1)
end_time = Time.new(2014,1)
TimeDifference.between(start_time, end_time).in_years
=> 1.0
# DateTime
start_time = DateTime.new(2013,1)
end_time = DateTime.new(2014,1)
TimeDifference.between(start_time, end_time).in_years
=> 1.0
# Date
start_time = Date.new(2013,1)
end_time = Date.new(2014,1)
TimeDifference.between(start_time, end_time).in_years
=> 1.0
start_time = Time.new(2013,1)
end_time = Time.new(2014,1)
TimeDifference.between(start_time, end_time).in_years
=> 1.0
TimeDifference.between(start_time, end_time).in_months
=> 12.0
TimeDifference.between(start_time, end_time).in_weeks
=> 52.14
TimeDifference.between(start_time, end_time).in_days
=> 365.0
TimeDifference.between(start_time, end_time).in_hours
=> 8760.0
TimeDifference.between(start_time, end_time).in_minutes
=> 525600.0
TimeDifference.between(start_time, end_time).in_seconds
=> 31536000.0
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}
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}
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"
git checkout -b my-new-feature
)git commit -am 'Added some feature'
)git push origin my-new-feature
)