[fpc-pascal] Re: Possible bug in return value of MonthsBetween function in unit dateutils
Funky Beast
funkybeast at pacific.net.sg
Thu Dec 10 12:50:04 CET 2009
Vincent Snijders wrote:
> 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
> _______________________________________________
> fpc-pascal maillist -
> fpc-pascal-PD4FTy7X32k2wBtHl531yWD2FQJk+8+b at public.gmane.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
>
I did read that, but I'm just wondering isn't 9.98767967 more approximate to 10 than 9?
Regards,
Funky Beast
More information about the fpc-pascal
mailing list