# Duration 0.0.4

**URL:** <https://www.ruby-forum.com/t/duration-0-0-4/70364>\
**Category:** Ruby\
**Created:** [September 28, 2006, 6:30pm UTC](https://www.ruby-forum.com/t/duration-0-0-4/70364 "2006-09-28T18:30:50Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![mhinton](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/8edcca/32.png) [@mhinton](https://www.ruby-forum.com/u/mhinton)\
**Post date:** [September 28, 2006, 6:30pm UTC](https://www.ruby-forum.com/t/duration-0-0-4/70364/1 "2006-09-28T18:30:50Z")

</div>

Hi,

I’d like to happily introduce Duration, the package for managing  
timespan durations. Have you ever been in a situation where you wanted  
to print a human-readable representation of a duration, maybe  
something like “4 days, 20 minutes and 8 seconds”?

Well, Duration gives you this functionality. I have written a detailed  
wiki article at [http://wiki.rubyonrails.org/rails/pages/Duration](http://wiki.rubyonrails.org/rails/pages/Duration) where  
you can read about how to install and use Duration.

The current version is 0.0.4 and is quite stable. If you find any  
bugs, please email me the bug with a relevant email subject.

Any feature requests should be sent to my email as well, as I am very  
interested in to hear and possibly implement what you as the user  
would feel would enhance Duration.

Thanks.

---

<div class="post-metadata">

**Author:** ![mhinton](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/8edcca/32.png) [@mhinton](https://www.ruby-forum.com/u/mhinton)\
**Post date:** [September 28, 2006, 10:57pm UTC](https://www.ruby-forum.com/t/duration-0-0-4/70364/2 "2006-09-28T22:57:56Z")

</div>

On 9/28/06, Matthew H. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> ## you can read about how to install and use Duration.
> 
> Matt

You mention that it can convert number of days/weeks into months. How  
do  
you deal with the fact that a “month” doesn’t have a standard number of  
days? Do you do as the Rails extension does by assuming a fixed number,  
or  
some other form of trickery?

---

<div class="post-metadata">

**Author:** ![mhinton](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/8edcca/32.png) [@mhinton](https://www.ruby-forum.com/u/mhinton)\
**Post date:** [September 29, 2006, 3:40pm UTC](https://www.ruby-forum.com/t/duration-0-0-4/70364/3 "2006-09-29T15:40:22Z")

</div>

On 9/29/06, Tanner B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > wiki article at [http://wiki.rubyonrails.org/rails/pages/Duration](http://wiki.rubyonrails.org/rails/pages/Duration) where
> 
> –  
> ===Tanner B.===  
> removed\_email\_address@domain.invalid  
> [http://tannerburson.com](http://tannerburson.com) \<—Might even work one day…

Since durations are only based on timespans of fixed lengths, they do  
not work relatively. So there is no time-detection magic to determine  
the days in a given month, because also durations don’t distinguish  
between what month it is (whether it be January or Feburary).  
BigDuration, the class that supports years and months will assume 30  
days as 1 month, and 12 months as 1 year.

---

<div class="post-metadata">

**Author:** ![mhinton](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/8edcca/32.png) [@mhinton](https://www.ruby-forum.com/u/mhinton)\
**Post date:** [October 18, 2006, 10:43am UTC](https://www.ruby-forum.com/t/duration-0-0-4/70364/4 "2006-10-18T10:43:38Z")

</div>

On 9/29/06, Jeremy T. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > > some other form of trickery?  
> > > could keep a list holding the number of days in a month (in the case  
> > > –  
> > > Jeremy T.  
> > > removed\_email\_address@domain.invalid

Duration and BigDuration are separate because BigDuration  
independantly deals with years and months. Duration, when given a year  
or a month will automatically change those to the number of weeks. I  
wanted to strictly limit Duration to consistent numbers (weeks, days,  
hours, minutes, seconds) and BigDuration to the inconsistent numbers  
(months).

---

<div class="post-metadata">

**Author:** ![mhinton](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/8edcca/32.png) [@mhinton](https://www.ruby-forum.com/u/mhinton)\
**Post date:** [October 18, 2006, 10:43am UTC](https://www.ruby-forum.com/t/duration-0-0-4/70364/5 "2006-10-18T10:43:38Z")

</div>

On 06-09-29, at 08:59, Matthew H. wrote:

> not work relatively. So there is no time-detection magic to determine  
> the days in a given month, because also durations don’t distinguish  
> between what month it is (whether it be January or Feburary).  
> BigDuration, the class that supports years and months will assume 30  
> days as 1 month, and 12 months as 1 year.

Just to add a little bit here, in Io, our Duration module doesn’t  
know anything about months at the moment, instead adding up days. It  
could keep a list holding the number of days in a month (in the case  
of february, if a leap year is detected, replace the second item in  
the list (28) with 29). Now that extension is pretty easy, but right  
now we only keep track of years, days, hours, and so on. You might  
consider doing something similar. It’s fairly straight forward.

Also, out of curiosity, why have two Duration classes? I can’t see  
how BigDuration would be required, perhaps could you elaborate a little?
