Einzelnen Beitrag anzeigen

Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#5

Re: IADsLargeInteger TO TDateTime

  Alt 17. Dez 2009, 09:08
Danke Andreas L.

Unglaublich aber wahr, so klappts!

Delphi-Quellcode:
function GetDateTimeFromLargeInteger(largeIntValue: IADsLargeInteger): TDateTime;
var
  int64Value: Int64;
  LocalTime: TFileTime;
  SystemTime: TSystemTime;
  FileTime : TFileTime;
begin
  int64Value := largeIntValue.HighPart;
  int64Value := int64Value shl 32;
  int64Value := int64Value or largeIntValue.LowPart;
  FileTime := TFileTime(int64Value);
  Result := EncodeDate(1601,1,1);
  if FileTimeToLocalFileTime(FileTime, LocalTime) then
    if FileTimeToSystemTime(LocalTime, SystemTime) then
      Result := SystemTimeToDateTime(SystemTime);
end;
und so kann das ganze in Aktion aussehen:

Delphi-Quellcode:
        
  pls := Get('pwdLastSet');
  li := IDispatch(pls) As IADsLargeInteger;
  if Trunc(GetDateTimeFromLargeInteger(li)) = EncodeDate(1601,1,1) then
    ShowMessage('password never expires')
  else
    ShowMessage(DateTimeToStr(GetDateTimeFromLargeInteger(li)));
Nun drängt sich mir aber die Frage auf, was soll das ganze??? geht das nicht auch einfacher?
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat