Zefram wrote:
> [email protected] wrote:
> >How do I compute the number of hours in a day in a specific time zone?
>
> Try this:
Thanks for the working example. It's helpful.
> It ought to be possible to do the interval calculation using
> DateTime::Duration instead of ->epoch, but the behaviour of DT::D is
> unreasonably confusing and I couldn't get it to work. (Strangely, I got
> a version that worked fine for America/New_York, where all the days are
> integer numbers of hours, but lost the fractional hour of 2007-12-09 in
> America/Caracas, which was 24.5 hours long.)
>
> Beware that the above code assumes that
> midnight exists every day. We recently had a thread
> <http://www.nntp.perl.org/group/perl.datetime/2008/10/msg7086.html> about
> midnight not existing in some timezones, specifically America/Sao_Paulo.
It's funny you should mention that thread. It's what inspired my little exercise, which I thought was going to be easier than it is. Here's what I *really* want to do:
I want to iterate the time zones of the world to generate a report of all days that aren't exactly 24 hours. I want to handle America/Caracas and America/Sao_Paulo correctly. You mentioned 2007-12-09 was 24.5 hours long in Venezuela. This is precisely the kind of outliers I'm after.
So I'm looking for the best, most canonical, most true-to-the-spirit-of-DateTime way to accomplish this using, presumably, DateTime::Duration and possibly DateTime::Format::Duration.
Jim Monty
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.