* fixed encode/decode date/time

This commit is contained in:
peter 1999-07-24 11:21:14 +00:00
parent 382d5bd835
commit 190df10130

View File

@ -31,7 +31,8 @@ const
(0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335));
function DoEncodeDate(Year, Month, Day: Word): longint;
var c, ya: word;
var
c, ya: cardinal;
begin
if (Month > 0) and (Month < 13) and (Day > 0) and (Day < 32) then
begin
@ -118,7 +119,7 @@ end ;
procedure DecodeDate(Date: TDateTime; var Year, Month, Day: word);
var
j: word;
j : cardinal;
begin
j := pred((Trunc(System.Int(Date)) + 693901) SHL 2);
Year:= j DIV 146097;
@ -139,9 +140,8 @@ end ;
Hour, Minute, Second and MilliSecond }
procedure DecodeTime(Time: TDateTime; var Hour, Minute, Second, MilliSecond: word);
Var l : longint;
Var
l : cardinal;
begin
l := Trunc(Frac(time) * MSecsPerDay);
Hour := l div 3600000;
@ -151,23 +151,14 @@ begin
Second := l div 1000;
l := l mod 1000;
MilliSecond := l;
{
Time := Frac(Time) * 24;
Hour := Trunc(Time);
Time := Frac(Time) * 60;
Minute := Trunc(Time);
Time := Frac(Time) * 60;
Second := Trunc(Time);
MilliSecond := Trunc(Frac(Time) * 1000);
}
end;
{ DateTimeToSystemTime converts DateTime value to SystemTime }
procedure DateTimeToSystemTime(DateTime: TDateTime; var SystemTime: TSystemTime);
begin
DecodeDate(DateTime, SystemTime.Year, SystemTime.Month, SystemTime.Day);
DecodeTime(DateTime, SystemTime.Hour, SystemTime.Minute, SystemTime.Second, SystemTime.MilliSecond);
DecodeDate(DateTime, SystemTime.Year, SystemTime.Month, SystemTime.Day);
DecodeTime(DateTime, SystemTime.Hour, SystemTime.Minute, SystemTime.Second, SystemTime.MilliSecond);
end ;
{ SystemTimeToDateTime converts SystemTime to a TDateTime value }
@ -652,7 +643,10 @@ end;
{
$Log$
Revision 1.14 1999-07-14 08:47:54 michael
Revision 1.15 1999-07-24 11:21:14 peter
* fixed encode/decode date/time
Revision 1.14 1999/07/14 08:47:54 michael
* faster En/Decodedate routines from Frank Reichert
* Fixed FormatDateTime with short/longtimeformat.