Einzelnen Beitrag anzeigen

Benutzerbild von mleyen
mleyen

Registriert seit: 10. Aug 2007
609 Beiträge
 
FreePascal / Lazarus
 
#23

Re: Komme nicht weiter mit Zeitvergleichen?

  Alt 19. Okt 2009, 13:20
Zitat von Tyrael Y.:
Zitat von Luckie:
Plus einem Deltawert, sonst stimmt der Vergleich 23 Stunden und 59 Minuten.
Wozu das?
Weil der Wecker dann 24/7 klingelt.

@AlexII:
Eigentlich ist das gar nicht schwer, man muss nur einmal das Problem erkennen.

Du vergleichst 2 Werte mit unterschiedlicher Genauigkeit.
Um diese trotzdem auf "Gleichheit" prüfen zu können, musst du ein bisschen ungenauer werden.
In deinem Fall musst du dazu eine zeitrange einbauen.
Also einen bestimmten Zeitintervall, indem gesagt wird, die Zeit stimmt mit der anderen überein.

Als Beispiel mal Floatwerte:
Delphi-Quellcode:
procedure TBluppForm.button1Click(Sender: TObject);

  function SingleEquals(const AVal1, AVal2: Single; const Precision: Single = 1.0): Boolean;
  begin
    Result :=
      (AVal2 > AVal1 - Precision) and
      (AVal2 < AVal1 + Precision)
  end;

begin
  if SingleEquals(2.0, 3.2) then
    MessageDlg('1. Equals', mtInformation, [mbOK], 0);
  if SingleEquals(2.0, 3.2, 1.5) then
    MessageDlg('2. Equals', mtInformation, [mbOK], 0);
end;

Ich hoffe das Problem ist jetzt verständlicher geworden
  Mit Zitat antworten Zitat