Thema: Delphi Zeiturechnungsprobleme

Einzelnen Beitrag anzeigen

CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#1

Zeiturechnungsprobleme

  Alt 26. Jan 2003, 13:04
Hi,
warum WinAPI? Weil ich die Zeit aus einer API-Funktion bekomme!
So, nun zum Problem: Ich bekomme mit Hilfe der NetUserGetInfo-Funktion die Zeit des letzten Login und nun will ich die erhaltene Zeit umrechnen. Das mache ich mit folgendem Source:
Delphi-Quellcode:
TempTime := UnixToDateTime(aCurUserBuffer.usri11_last_logon, false);
if TempTime = 25569.0416666667 then
  TempS := 'Letzer LogIn: (nie)'
else
  TempS := 'Letzter LogIn: ' + DateTimeToStr(TempTime) + ' :: '+FloatToStr(TempTime);
{Unter der Verwendung der folgenden Funktion (aus der DP):}
function UnixtoDateTime(UnixTime: Double; UTC: Boolean): TDateTime;
var
  SysTime, TmpSysTime: TSystemTime;
  DTime: TDateTime;
  FTime, LTime: TFileTime;
begin
  DTime := (UnixTime / (24 * 3600)) + EncodeDate(1970, 1, 1);

  if UTC = true then
    result := DTime
  else
  begin
    DateTimeToSystemTime(DTime, TmpSysTime);

    SystemTimeToFileTime(TmpSysTime, FTime);
    FileTimeToLocalFileTime(FTime, LTime);
    FileTimeToSystemTime(LTime, SysTime);

    result := SystemTimeToDateTime(sysTime);
  end;
end;
{Folgende Variablendeklinationen:}
var
  TempTime: TDateTime;
  aCurUserBuffer: PUSER_INFO_11;
  TempS: String;
So, nun ist das Problem, dass bei allen, die noch nie eingeloggt waren immernoch das Datum 01.01.1970 01:00:00 steht.
Hat einer Abhilfe?

Chris
  Mit Zitat antworten Zitat