[fpc-pascal] Possible bug in return value of MonthsBetween	function in unit dateutils
    Vincent Snijders 
    vsnijders at vodafonevast.nl
       
    Thu Dec 10 12:30:05 CET 2009
    
    
  
Funky Beast schreef:
> Hi,
> 
> When trying to get the number of months between the following dates:
> 01-06-2009 and 01-08-2008
> 
> MonthsBetween returns: 9 months.
> 
> That is clearly wrong (fundamentally counting with my fingers yields 10 
> months).
> Looking at the function in dateutils.inc, I copied the function 
> implementation to do a test.
> Now, if I strip away Trunc() from the function, the result is: 9.98767967.
> Trunc() simply strips away the decimals behind, which returns: 9.
> 
> I'm wondering if Round() should be used instead of Trunc().
> 
For such easy question, I use google:
http://lmgtfy.com/?q=monthsbetween
http://www.freepascal.org/docs-html/rtl/dateutils/monthsbetween.html states that 
"This number is an approximation, based on an average number of days of 30.4375 per 
month". 9 is approximately 10, so the is behavior you see is as documented ;-)
Vincent
    
    
More information about the fpc-pascal
mailing list