# Total Date Difference

**URL:** <https://www.ruby-forum.com/t/total-date-difference/157108>\
**Category:** Rails\
**Created:** [January 7, 2009, 12:40pm UTC](https://www.ruby-forum.com/t/total-date-difference/157108 "2009-01-07T12:40:29Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![rakenewuser](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/e480ec/32.png) [@rakenewuser](https://www.ruby-forum.com/u/rakenewuser)\
**Post date:** [January 7, 2009, 12:40pm UTC](https://www.ruby-forum.com/t/total-date-difference/157108/1 "2009-01-07T12:40:29Z")

</div>

Hi,

Anyone can help, on how to get the total number of days with this data;

{:date\_created=\>“2008-12-19”, :date\_last\_updated=\>“2008-12-23”}

The display in “puts” should be the total difference.

Thanks in Advance!

---

<div class="post-metadata">

**Author:** ![rakenewuser](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/e480ec/32.png) [@rakenewuser](https://www.ruby-forum.com/u/rakenewuser)\
**Post date:** [January 7, 2009, 12:55pm UTC](https://www.ruby-forum.com/t/total-date-difference/157108/2 "2009-01-07T12:55:36Z")

</div>

Ferdie Ferdie wrote:

> Hi,
> 
> Anyone can help, on how to get the total number of days with this data;
> 
> {:date\_created=\>“2008-12-19”, :date\_last\_updated=\>“2008-12-23”}
> 
> The display in “puts” should be the total difference.
> 
> Thanks in Advance!

Doing sums with Time objects will give you an int or float, representing  
seconds. You can then divide that by 86400 to get the time in days. If  
you get a float back, and just want whole days, then just call .to\_i or  
‘round’ on it.

eg

puts “Created about #{((yourhash[:date\_last\_updated] -  
yourhash[:date\_created])/86400).round } days ago”

If you want it in days and hours, that’s a bit more longwinded but you  
could write a method to do it.

It always seemed to me that Ruby is missing a ‘duration’ class that  
represents the difference between two times, with nice methods for  
displaying the difference in hours, days, months, years etc. Is there  
one and i missed it?

---

<div class="post-metadata">

**Author:** ![rakenewuser](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/e480ec/32.png) [@rakenewuser](https://www.ruby-forum.com/u/rakenewuser)\
**Post date:** [January 7, 2009, 3:23pm UTC](https://www.ruby-forum.com/t/total-date-difference/157108/3 "2009-01-07T15:23:32Z")

</div>

somehow my post did not show up. here it is again:  
[http://wiki.rubyonrails.org/rails/pages/Duration](http://wiki.rubyonrails.org/rails/pages/Duration)

---

<div class="post-metadata">

**Author:** ![rakenewuser](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/e480ec/32.png) [@rakenewuser](https://www.ruby-forum.com/u/rakenewuser)\
**Post date:** [January 7, 2009, 3:31pm UTC](https://www.ruby-forum.com/t/total-date-difference/157108/4 "2009-01-07T15:31:14Z")

</div>

you could use this one:  
[http://wiki.rubyonrails.org/rails/pages/Duration](http://wiki.rubyonrails.org/rails/pages/Duration)

---

<div class="post-metadata">

**Author:** ![rakenewuser](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/e480ec/32.png) [@rakenewuser](https://www.ruby-forum.com/u/rakenewuser)\
**Post date:** [January 8, 2009, 5:09am UTC](https://www.ruby-forum.com/t/total-date-difference/157108/5 "2009-01-08T05:09:31Z")

</div>

Thanks for the helps ! it’s work perfectly.

Thanks Again for all the replay.
