Go to Google Groups Home    microsoft.public.dotnet.framework
FoxPro Date Processing

brendan.mcken...@gmail.com

Hello,

I am writing a class to process FoxPro .dbf files, all has been going
well, but I have recently hit a snag.  I'm trying to convert FoxPro's
DateTime field (T) to a System.DateTime.  FoxPro's field is 2 32bit
integers: one stores the date, the other stores the time, stored in
reverse byte order. (2f 4a 12 9a== 9a 12 4a 2f)

Easy... here's the hard part.  The date integer stores the number of
days from 1/1/4712BC (yes... BC).  The time integer stores the number
of milliseconds from 00:00:00.

Processing the time was easy ( DateTime.AddMilliseconds() ).
Processing the date, is not.

Is there anyone who can lend a hand and help me process this date?

The date integer: 2453809 should become 20/04/2006

My current process is:

DateTime dt = new DateTime(1, 1, 1);
dt = dt.AddDays(days);
dt = dt.AddYears(-4713);

This results in a DateTime which is 2 days off, and I'm afraid it may
result in more problems due to leap years with other dates.

Can anyone help me out with this?

Thanks!

Brendan