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