![]() |
Zeiturechnungsprobleme
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:
So, nun ist das Problem, dass bei allen, die noch nie eingeloggt waren immernoch das Datum 01.01.1970 01:00:00 steht.
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; Hat einer Abhilfe? Chris |
Frag doch einfach ab. Und wenn das Datum rauskommt, gibts du nichts aus. bzw, dann gibt dir _last_logn 0 zurück. Und wenn du 0 bekommst gibst du nicghts aus oder je nachdem, was du willst.
|
Klar!
Auf die Idee bin ich gar nicht gekommen! Danke! Jetzt funktioniert es. Chris |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:52 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