* fixed MSecsToTimeStamp by Lagunov Aleksey, resolves #38631

git-svn-id: trunk@49247 -
(cherry picked from commit dbee3bcc0d)
This commit is contained in:
florian 2021-04-22 20:14:00 +00:00 committed by marcoonthegit
parent 198616805d
commit 98ae5f3497
2 changed files with 30 additions and 5 deletions

View File

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

23
tests/webtbs/tw38631.pp Normal file
View File

@ -0,0 +1,23 @@
{$mode objfpc}
program msec_test1;
uses sysutils;
var
D: TDateTime;
T, T1, T2: TTimeStamp;
MS: Comp;
begin
D:=EncodeDate(2021, 03, 16) + EncodeTime(14, 02, 15, 1);
WriteLn('DATE: ', DateTimeToStr(D));
T:=DateTimeToTimeStamp(D);
WriteLn(' T.Date=',T.Date,' T.Time=', T.Time);
MS:=TimeStampToMSecs(T);
T1:=MSecsToTimeStamp(MS);
WriteLn('T1.Date=',T1.Date,' T1.Time=', T1.Time);
WriteLn('DATE1: ', DateTimeToStr(TimeStampToDateTime(T1)));
if TimeStampToDateTime(T1)<>D then
halt(1);
writeln('ok')
end.