http://www.perlmonks.org?node_id=162749


in reply to Re: Re: Date difference?
in thread Date difference?

This is explained in  perldoc Date::Calc
* "($Dd,$Dh,$Dm,$Ds) = Delta_DHMS($year1,$month1,$day1, $hour1,$min1,$sec1, $year2,$month2,$day2, $hour2,$min2,$sec2);" This function returns the difference in days, hours, minutes and seconds between the two given dates with times. All four return values will be positive if the two dates are in chronological order, i.e., if date #1 comes chronologically BEFORE date #2, and negative (in all four return values!) if the order of t +he two dates is reversed. This is so that the two functions ""Delta_DHMS()"" and ""Add_Delta_DHMS()"" (description see further below) are complementary, i.e., mutually inverse: Add_Delta_DHMS(@date1,@time1, Delta_DHMS(@date1,@time1, @date2,@ti +me2)) yields ""(@date2,@time2)"" again, whereas Add_Delta_DHMS(@date2,@time2, map(-$_, Delta_DHMS(@date1,@time1, @date2,@time2))) yields ""(@date1,@time1)"", and Delta_DHMS(@date1,@time1, Add_Delta_DHMS(@date1,@time1, @delta)) yields ""@delta"" again. The result is zero (in all four return values) if the two dates and times are identical.

--Jim

Replies are listed 'Best First'.
Re: Re: Re: Re: Date difference?
by chicks (Scribe) on Apr 29, 2002 at 03:07 UTC
    I know it's explained in the docs, but it still seems counterintuitive.
      Perhaps it will make more sense if you play with the code examples they give after explaining that they want functions Delta_DHMS() and Add_Delta_DHMS() to be complementary/mutually inverse.

      It seems intuitive to me, particularly if you were going to use the positive/negative results as arguments in a followup function call.

      --Jim