in reply to date comparing

Hi,

I have a hard time understanding this code. First off, theres this:

$dateslots[$len-1] = 8/11/2002; $i = 8/5/2002;
Do you realize that it puts the value 0.000363273090545818 into $dateslots[$len-1]? And 0.000799200799200799 into $i? Normally if you want to deal with dates in such a format you quote them: "8/11/2002".

Next thing is that what format are these dates? Are they in the US format m/d/y or in the european format d/m/y? Perhaps if you used the ISO/DIN (and iirc US Military standard) YYYY/MM/DD there would be less ambiguity (and you could sort your dates easily.)

for (;$i<=$dateslots[$len-1];($y,$m,$d)=$object->split_date($i), $i=$o +bject->get_next_date( +$y,$m,$d,1))
Im assuming you come from a C background, but even there I dont see why you used a for(;;) loop and not a while() loop. For instance the above is written much clearer as (although I wonder if strict and warnings are on or not. You dont seem to declare any variables.)
while ($i<=$dateslots[$len-1]) { ($y,$m,$d)=$object->split_date($i); $i=$object->get_next_date(+$y,$m,$d,1))
Im sorry to say but besides this I cant see much more to do than to rethink your problem, clean up your code and review the Date modules on CPAN.

Yves / DeMerphq
---
Writing a good benchmark isnt as easy as it might look.