From: "David A. Black" Date: 2009-09-22T06:10:03+09:00 Subject: Re: find the number of hours in a day Hi -- On Tue, 22 Sep 2009, Nick Brown wrote: > 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? 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 -- David A. Black, Director Ruby Power and Light, LLC (http://www.rubypal.com) Ruby/Rails training, consulting, mentoring, code review Book: The Well-Grounded Rubyist (http://www.manning.com/black2)