[Lazarus] DateDif function needed

waldo kitty wkitty42 at windstream.net
Sun Nov 10 01:10:28 CET 2013

On 11/9/2013 1:48 PM, Jürgen Hestermann wrote:
> Am 2013-11-09 18:31, schrieb Michael Van Canneyt:
>  > On Sat, 9 Nov 2013, Jürgen Hestermann wrote:
>  >> Storing dates as floats has a lot of drawbacks.
>  >> It's inaccurate, you always need a starting date and get other problems.
>  > Can you prove this statement ?
> Well, aren't the current mails about incorrect YearsBetween calculation proof
> enough?

i misunderstood the given functions... sorry :?

> If you need to use an approximate value for days in the year then some is wrong
> IMO.

i have been working on this most all day and there's no way around it with 
simple functions... they must be more intricate than what i've seen or created 
so far...

> For the same difference between two time floats it can be a full year or not
> depending on whether a leap year is included or not.

and there's the rub... if you want the difference between two dates and times, 
how do you calculate if there is a leap year involved, which year of the date is 
involved and how do you feed that to the *Between routines? you can't from what 
i've seen... however the *Span routines i've been pointed to may very well 
handle this...

what i've seen is like comarping this

2013/01/01 00:00:00.000
2014/01/01 00:00:00.001

and getting this
MilliSecondsBetween(A1,A2) = 31536000001

but this is an estimated value because

RealMSPerYear = 31557600000

is what you get with 365.25 days per year...

but then looking at those two values, you cannot tell if a leap year is involved 
in there or not... much less if there are two or more leap years...

back in the day, routines that i used to do this in TP/BP converted the 
date/time values to julian date values, worked on them for the difference and 
then converted back to individual year, months, day, etc... but then things 
break when traversing over period count changes or trying to go between 
different calendar formats... it was ugly then and still ugly now... i just hope 
that what i had then is available now via built-in library routines or is easily 
built from the library routines ;)

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.

More information about the Lazarus mailing list