Oops. There was an error in my example, I didn't 
truncate the second return value.




> Why does the DateTime::Set class need to get both 
dates back?  I think that's what is confusing me.




It needs 'random access' to the recurrence, such that 
it can construct the set of ocurrences for a given 
span. The return values mean:




#0 = 'current' value - this is the actual 'result'.




#1 = 'next' value - this value will be fed to the 
callback recursively, such that we can get all the 
values in a given span.




This has the same effect of defining a 
previous()/next() function pair, or defining a 
truncate()/next() function pair.




For example: get results for current year:


  current = 2003  


  next = 2004     


$callback(next) gives:


  current = 2004


  next = 2005




If you had just 1 return value you would get:


  result = 2004  ("next" only!)


$callback(next) gives:


  result = 2005




In the second case, you have no way to find out the 
"2003" result, because it comes _before_ today, and 
you can only get results _after_ today.




- Flavio S. Glock




Reply via email to