Avatar billede hrc Mester
08. oktober 2015 - 15:55 Der er 4 kommentarer og
1 løsning

Indy SNTP returnerer uventet dato

Jeg forstår det ikke, SNTP. Jeg forstår ikke altid Indy. Jeg har lavet mig en funktion som skulle give mig datoen fra internettet. Indys SNTP-komponent benyttes og det kører egentlig fint. Problemet er, at kigger jeg på SNTPClient.DateTime, så får jeg en dato i 1947. Synes ikke jeg har anden mulighed end at lægge en masse millisekunder til, så det gør jeg:

function GetInternetDate: TDateTime;
var
  SNTPClient: TIdSNTP;
begin
  SNTPClient := TIdSNTP.Create(nil);
  try
    SNTPClient.Host := 'dk.pool.ntp.org'; // 'pool.ntp.org';
    result := DateOf(IncMilliSecond(SNTPClient.DateTime,2155850554730));
// OutputDebugString(pchar(format('Computer: %s, internet: %s',[DateTimeToStr(now),DateTimeToStr(result)])));
// OutputDebugString(pchar(format('DateDiff: %d, MilliDiff: %d',[DaysBetween(today,result),MilliSecondsBetween(today,result)])));
  finally
    SNTPClient.Free;
  end;
end;

... men er det den rigtige måde?
Avatar billede spil2vind Nybegynder
08. oktober 2015 - 16:17 #1
procedure TForm1.Button1Click(Sender: TObject);
var
  SNTPClient: TIdSNTP;
begin
  SNTPClient := TIdSNTP.Create(nil);
  try
    SNTPClient.Host := 'dk.pool.ntp.org'; // 'pool.ntp.org';
    ShowMessage( DatetimeToStr(SNTPClient.DateTime) );
  finally
    SNTPClient.Free;
  end;
end;

giver på min computer det korrekte svar, jeg kører XE3
Avatar billede hrc Mester
09. oktober 2015 - 13:34 #2
Hmmm. D2009 her, men måske kører jeg det over på XE3'eren.
Avatar billede hrc Mester
09. oktober 2015 - 14:20 #3
Det løste problemet. Min D2009 returnerer stadig lidt forkert, men men samme kode fungerer i XE3. Det havde jeg ikke forventet. Læg mig et svar.
Avatar billede hrc Mester
07. november 2015 - 11:34 #4
Læg et svar om du vil have pointsene.
Avatar billede hrc Mester
20. november 2015 - 09:34 #5
Jamn, så snupper jeg dem selv. Tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester