On 11/14/2013 7:25 AM, José Mejuto wrote:
Maybe I'm completly wrong ?

you are completely right, IMHO... one simply needs to choose their desired base and level of error that is acceptable for their task's needs...


the initial problem arose because there's no easy way to calc the desired output with the existing routines and a lot of dancing about... spreadsheets and other languages are in the same boat, too, with the routines they offer...

eg: openOffice Calc - no easy way to retain only the fraction of a result so one must dance with subtracting and truncating all the while recalculating the values over and over again... one can elect to use some scratchpad area on the sheet to store some intermittent values...

witness: these formulas from Calc using fractional estimations like existing routines in FPc/Lazarus

[without scratchpad]
total days:   =DAYS(A2;B2)
whole years:  =INT(C2/365.25)     [C2 holds total days value]
whole months: =INT((((C2/365.25)-TRUNC(C2/365.25))*365.25)/30.4375)
whole days: =ROUND((((((C2/365.25)-TRUNC(C2/365.25))*365.25)/30.4375)-TRUNC(((((C2/365.25)-TRUNC(C2/365.25))*365.25)/30.4375)))*30.4375)


[with scratchpad]
end date:     08/01/2018                   [MM/DD/YYYY in A2]
start date:   11/14/2013                   [MM/DD/YYYY in B2]
days between: =DAYS(A2;B2)                            [in C2] 1721
real years:   =C2/365.25                             [in AD2] 4.7118412047
int years:    =INT(AD2)                               [in D3] 4
real months:  =((AD2-TRUNC(AD2))*365.25)/30.4375     [in AE2] 8.5420944559
int  months:  =INT(AE2)                               [in E2] 8
real days:    =((AE2)-TRUNC(AE2))*30.4375            [in AF2] 16.5
int days:     =ROUND(AF2)                             [in F2] 17



--
NOTE: No off-list assistance is given without prior approval.
      Please keep mailing list traffic on the list unless
      private contact is specifically requested and granted.

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to