[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