![]() |
FileDateToDateTime ist ungenau
Hallo,
ich habe festgesetellt, dass die Delphi-Funktion FileDateToDateTime() die Millisekunden bei der Umwandlung des File-Timestamp in ein TDateTime wegläßt. Dadurch entsteht das Problem, dass der Vergleich von Dateien immer um ein paar Millisekunden untschiedlich ist. In der SysUtils.pas ist FileDateToDateTime wie folgt definiert:
Delphi-Quellcode:
Weiß jemand, wie der Millisekunden-Anteil richtig berechnet wird? Danke.
function FileDateToDateTime(FileDate: Integer): TDateTime;
{$IFDEF MSWINDOWS} begin Result := EncodeDate( LongRec(FileDate).Hi shr 9 + 1980, LongRec(FileDate).Hi shr 5 and 15, LongRec(FileDate).Hi and 31) + EncodeTime( LongRec(FileDate).Lo shr 11, LongRec(FileDate).Lo shr 5 and 63, LongRec(FileDate).Lo and 31 shl 1, 0); <---- hier wird Millisec Anteil einfach auf Null gesetzt. end; Grüße Ilias [edit=sakura] [delphi]Tags Mfg, sakura[/edit] |
Re: FileDateToDateTime ist ungenau
Hallo Ilias,
FileDate ist definitionsgemäß nur auf 2 Sekunden genau. Du musst deine Vergleiche daran anpassen. Grüße vom marabu |
DP-Maintenance
Dieses Thema wurde von "sakura" von "Programmieren allgemein" nach "Windows API / MS.NET Framework API" verschoben.
Delphifragen gehören in Delphisparten... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz