Adding times

Ok, I try to use ruby for all sorts on-the-fly things as
they come up so that I can practice & learn about it :slight_smile:

So, I’m looking up Ruby in a Nutshell, and amazon says
if I order in the next 10 hours and 40 minutes I can get
it soon.

“Cool” I think … “I can use Ruby to do the time math”,
and irb is my friend :slight_smile:

However, I can’t get it to work. This is what I tried:

irb(main):001:0> now=Time.now
=> Tue Oct 24 07:49:31 -0400 2006

irb(main):002:0> hours = 10
=> 10

irb(main):003:0> mins = 40
=> 40

irb(main):004:0> total_minutes = hours * 60 + mins
=> 640

irb(main):005:0> now
=> Tue Oct 24 07:49:31 -0400 2006

irb(main):006:0> now.min
=> 49

irb(main):007:0> now.min + total_minutes
=> 689

irb(main):008:0> now + total_minutes
=> Tue Oct 24 08:00:11 -0400 2006

irb(main):009:0> now
=> Tue Oct 24 07:49:31 -0400 2006

Is there an easy way to add specific hours and minutes to a
given time? I have a feeling this is easy to do, I just don’t
know how.

Thanks,
eb

irb(main):008:0> now + total_minutes

The argument for Time#+ is the seconds to add.

Kalman

Kalman N. wrote:

irb(main):008:0> now + total_minutes

The argument for Time#+ is the seconds to add.

Hi,

cool … so I was somewhat close. Multiplying my total_mins
by 60 to get seconds and then adding them seems to do the
trick!

Thanks Kalman,

eb

EB wrote:

Is there an easy way to add specific hours and minutes to a
given time? I have a feeling this is easy to do, I just don’t
know how.

I’m not sure I understand exactly what you’re trying to do, but
something like this:

class Fixnum
def minutes
self60
end
def hours
self
3600
end
end

Time.now + 7.minutes
x = Time.now
x += 13.hours + 17.minutes

Something like this can be found in Facets too.


Ola B. (http://ola-bini.blogspot.com)
JvYAML, RbYAML, JRuby and Jatha contributor
System Developer, Karolinska Institutet (http://www.ki.se)
OLogix Consulting (http://www.ologix.com)

“Yields falsehood when quined” yields falsehood when quined.

Ola B. wrote:

self60
end
def hours
self
3600
end
end

Time.now + 7.minutes
x = Time.now
x += 13.hours + 17.minutes

Nice! Thanks!

Something like this can be found in Facets too.

I had no idea about Ruby F.s, I just google for it, thanks for
mentioning it.

There is so much to learn, and such little time!! (love learning though)

eb