Hi Tim,
It looks like the normalization is hosed.
Cut 'n Paste-able example: -- use DateTime::Duration;
my $dur = DateTime::Duration->new( hours => 2.67 );
print "hours: ", $dur->in_units( 'hours' ), "\n"; print "minutes: ", $dur->in_units( 'minutes' ), "\n"; print "seconds: ", $dur->in_units( 'seconds' ), "\n"; print "nanoseconds: ", $dur->in_units( 'nanoseconds' ), "\n"; --
-J
--
On Mon, 13 Dec 2004, Tim Jenness wrote:
perldl> $dur = DateTime::Duration->new( hours => 2.67);
perldl> print $dur->minutes 40.2
perldl> print $dur->seconds 0
How can that be sane? So you ask for minutes and you get fractional minutes but you ask for seconds and get zero?
.... !!!!!
Hang on.
perldl> print $dur->in_units( 'minutes' ) 160.2 perldl> print $dur->in_units( 'seconds' ) 0 perldl>
so clearly in_units() is doing the right thing except that for 'seconds' it's not working at all....
perldl> print $dur->in_units( 'hours' ) 2
and neither is hours since that should say 2.67 to be consistent with minutes returning 160.2.
I'm extremely confused by this seeming inconsistency.
-- Tim Jenness JAC software http://www.jach.hawaii.edu/~timj
