Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#11

Re: filtetime - filetime??

  Alt 2. Jun 2008, 05:28
Moin,

welche Akrobatik (TZ, DST) du in deiner Funktion anstellst, hängt nur vom übergebenen Wert ab.

Wenn du mit dieser Funktion die CountDown-Zeit ermitteln willst, dann musst du aber die Differenz anders bilden:

Delphi-Quellcode:
// TempFileTime := TFileTime(Int64(CurrentFileTime) - Int64(TempFileTime));
TempFileTime := TFileTime(Int64(TempFileTime) - Int64(CurrentFileTime));
Du erhältst sonst negative Werte, die von FileTimeToSystemTime() nicht akzeptiert und mit dem Fehler "Falscher Parameter" quittiert werden.

Das folgende ist deine Idee mit anderen Bezeichnern und einer Signatur, die den Umgang mit Fehlern leichter macht:

Delphi-Quellcode:
function CountDown(stLocal: TSystemTime; var stDiff: TSystemTime): Boolean;
var
  stNow: TSystemTime;
  ftLocal, ftNow: TFileTime;
  iDiff: Int64;
begin;
  GetLocalTime(stNow);
  Result := SystemTimeToFileTime(stNow, ftNow) and SystemTimeToFileTime(stLocal, ftLocal);
  if Result then
  begin
    iDiff := Int64(ftLocal) - Int64(ftNow);
    Result := FileTimeToSystemTime(TFileTime(iDiff), stDiff);
  end;
end;
Freundliche Grüße
  Mit Zitat antworten Zitat