[fpc-devel] MinDateTime is 100 AD ?
Joost van der Sluis
joost at cnoc.nl
Mon Jul 2 22:46:28 CEST 2007
On Mon, 2007-07-02 at 22:32 +0200, Vincent Snijders wrote:
> On Mon, 02 Jul 2007 22:21:22 +0200
> Joost van der Sluis <joost at cnoc.nl> wrote:
>
> > On Mon, 2007-07-02 at 22:07 +0200, Michael Van Canneyt wrote:
> > >
> > > On Mon, 2 Jul 2007, Joost van der Sluis wrote:
> > >
> > > > On Mon, 2007-07-02 at 21:48 +0200, Michael Van Canneyt wrote:
> > > > >
> > > > > On Mon, 2 Jul 2007, Joost van der Sluis wrote:
> > > > >
> > > > > > Hi all,
> > > > > >
> > > > > > In sysstrh.inc MinDateTime is defined as follows:
> > > > > >
> > > > > > { For floattodatetime }
> > > > > > MinDateTime: TDateTime = -657434.0; { 01/01/0100 12:00:00.000 AM }
> > > > > > MaxDateTime: TDateTime = 2958465.99999;{ 12/31/9999 11:59:59.999 PM }
> > > > > >
> > > > > > Why is that? Datetimes before 100AD works perfectly. Can I change it to
> > > > > > 01/01/01 ? (Why does this restriction exist at all?!?)
> > > > >
> > > > > Delphi compatibility, probably. As far as I know, it's not used ?
> > > >
> > > > It is used in cvarutil.VariantToDate and in sysstr.FloatTodateTime.
> > >
> > > Probably to avoid a conversion error ?
> > > Maybe some Microsoft thing, that's where TDateTime comes from ?
> > >
> > > The reason is probably lost in the mists of time :-)
> >
> > I'll change it to 01/01/01. When it raises problems on windows, the db-
> > testsuite will detect that.
>
> Just an idea, what happens if you assign '01/01/01' (the string) to a variant and then assign the variant to a tdatetime?
>
> Is it a date from the year 1901 or not?
It'll return 1901. If you supply '01/01/0001' it will return the year
0001 in fpc 2.1.4, and 1901 in fpc 2.0.4.
Joost.
ps: I meant 01/01/0001 for MinDateTime, offcourse.
More information about the fpc-devel
mailing list