* Do not use comp type, use int64 instead. Fix issue #40469

This commit is contained in:
Michaël Van Canneyt 2023-10-16 10:25:07 +02:00
parent c1be8e590d
commit bad90711ef
2 changed files with 15 additions and 6 deletions

View File

@ -76,19 +76,27 @@ end;
{ MSecsToTimeStamp }
function MSecsToTimeStamp(MSecs: comp): TTimeStamp;
var
D1:Int64;
D1 : Int64;
begin
D1:=Trunc(msecs);
result.Date := D1 div msecsperday;
result.Time := D1 - result.date * msecsperday;
Result:=MSecsToTimeStamp(D1);
end;
function MSecsToTimeStamp(MSecs: Int64): TTimeStamp;
begin
result.Date := MSecs div msecsperday;
result.Time := MSecs - result.date * msecsperday;
end;
{ TimeStampToMSecs }
function TimeStampToMSecs(const TimeStamp: TTimeStamp): comp;
function TimeStampToMSecs(const TimeStamp: TTimeStamp): Int64;
begin
result := TimeStamp.Time + comp(timestamp.date)*msecsperday;
result := TimeStamp.Time + timestamp.date * msecsperday;
end;
Function TryEncodeDate(Year,Month,Day : Word; Out Date : TDateTime) : Boolean;

View File

@ -114,7 +114,8 @@ type
function DateTimeToTimeStamp(DateTime: TDateTime): TTimeStamp;
function TimeStampToDateTime(const TimeStamp: TTimeStamp): TDateTime;
function MSecsToTimeStamp(MSecs: Comp): TTimeStamp;
function TimeStampToMSecs(const TimeStamp: TTimeStamp): comp;
function MSecsToTimeStamp(MSecs: Int64): TTimeStamp;
function TimeStampToMSecs(const TimeStamp: TTimeStamp): Int64;
function TryEncodeDate(Year, Month, Day: Word; out Date: TDateTime): Boolean;
function TryEncodeTime(Hour, Min, Sec, MSec: Word; out Time: TDateTime): Boolean;
function EncodeDate(Year, Month, Day :word): TDateTime;