Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#23
  Alt 22. Jul 2005, 10:25
Okay,

letzter Versuch
Der Code basiert auf TIDTime von den Indys

Delphi-Quellcode:
function Time2UTC(aLocalTime: TDateTime): TDateTime;
const
  MinsPerDay = 24 * 60;
var
  zeitzone: TTimeZoneInformation;
  localdiff: integer;
begin
  localdiff := 0;
  case GetTimeZoneInformation(zeitzone) of
    TIME_ZONE_ID_STANDARD:
    begin
      localdiff := (zeitzone.Bias)
    end;
    TIME_ZONE_ID_DAYLIGHT:
    begin
      localdiff := (zeitzone.Bias) + (zeitzone.DaylightBias)
    end;
  end;
  Result := ((aLocalTime * MinsPerDay) + localdiff) / MinsPerDay;
end;

procedure SetzeComputerZeit (aTime : TDateTime);
var
  NewTime: TDateTime;
  SystemTime: TSystemTime;
begin
  Newtime := Time2UTC(aTime); // Zeit in UTC umwandeln
  DateTimeToSystemTime(NewTime, SystemTime); // In TSystemTime wandeln
  SetSystemTime(SystemTime); // *blubb*
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  SyncTime : TDateTime;
begin
  IdTime1.Host := 'ptbtime1.ptb.de'; // Time-Server
  SyncTime := IdTime1.DateTime; // Zeit mit den Indys holen
  SetzeComputerZeit(SyncTime);
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat