Using DateTime's subtract_datetime() to compute
2003/02/09 13:21:28 - 1994/12/16 00:01:00, I get a negative result.
->delta_days = -2978
I traced it to the value of utc_rd_secs:
2003/02/09 13:21:28: utc_rd_secs = 44488
1994/12/16 00:01:00: utc_rd_secs = 82860
subtract_datetime calls
DateTime::Duration->new
( days => $self->{utc_rd_days} - $dt->{utc_rd_days},
seconds => $self->{utc_rd_secs} - $dt->{utc_rd_secs},
);
When DateTime::Duration::new() sees the negative 44488 - 82860,
it decides the duration will be negative.
'_d' => DateTime=HASH(0x11ce064)
'c' => HASH(0x11ce1fc)
'day' => 9
'day_of_week' => 7
'day_of_year' => 40
'hour' => 13
'minute' => 21
'month' => 2
'second' => 28
'year' => 2003
'local_rd_days' => 731255
'local_rd_secs' => 48088
'tz' => DateTime::TimeZone::OffsetOnly=HASH(0x11ce268)
'offset' => 3600
'utc_rd_days' => 731255
'utc_rd_secs' => 44488
'_d' => DateTime=HASH(0x11cf31c)
'c' => HASH(0x11cf8c4)
'day' => 16
'day_of_week' => 5
'day_of_year' => 350
'hour' => 0
'minute' => 1
'month' => 12
'second' => 0
'year' => 1994
'local_rd_days' => 728278
'local_rd_secs' => 60
'tz' => DateTime::TimeZone::OffsetOnly=HASH(0x11cf924)
'offset' => 3600
'utc_rd_days' => 728277
'utc_rd_secs' => 82860
--
Eric Cholet
Thread Next