Find the number of hours in a day

I’m trying to determine the best way to find the number of hours (or
seconds) in a given day in a given timezone. Is there a “right” way to
do this with Ruby?

There are so many ways to deal with dates and times in Ruby (Time, date,
datetime, ActiveSupport:…:Time, Chronic, ActionView) that I almost
don’t know where to start.

Basically, if there are 25 or 23 hours in a day due to daylight savings,
I need to know so that I can handle that special case. How would you
handle this?

Hi –

On Tue, 22 Sep 2009, Nick B. wrote:

handle this?
I suspect there’s a better way, probably already in a library
somewhere, but what occurs to me in the absence of knowing where is:

def seconds(day)
Integer(day.tomorrow.midnight - day.midnight)
end

def hours(day)
seconds(day) / 3600
end

(using ActiveSupport). I guess the Integer part might clash with leap
seconds, but you get the idea.

David

I suspect there’s a better way, probably already in a library
somewhere, but what occurs to me in the absence of knowing where is:

Dear Nick,

maybe this can help determine what places have daylight saving time at
a particular date:

http://tzinfo.rubyforge.org/

Best regards,

Axel