Neither DateTime::Format::Excel nor DateTime::Event::Sunrise pass their
own tests. They were both broken when the subtraction in DateTime
changed, from returning days and seconds to returning y,m,d, h,m,s.
DT::E::Sunrise uses the subtraction in its function
days_since_2000_Jan_0(), and DT::F::Excel in format_datetime(). Both
then call delta_days to see how many days have passed; this is now
broken.
There should probably an option in DateTime::subtract_datetime() to
specify which units should be returned. For example:
$dt1->subtract_datetime( $dt2,
[ 'months', 'days', 'minutes', 'seconds' ] );
would be equivalent to the current behaviour;
$dt1->subtract_datetime( $dt2, [ 'days', 'seconds' ] );
is the old version, that would be used by the two modules I mentioned
(or:
$dt1->subtract_datetime( $dt2, [ 'days' ] );
as the seconds value is not used;
$dt1->subtract_datetime( $dt2, [ 'seconds' ] );
is equivalent to subtract_datetime_absolute().
Would this be easy to implement?
Eugene