Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ergebnis von CompareDateTime wird nie erreicht? (https://www.delphipraxis.net/172222-ergebnis-von-comparedatetime-wird-nie-erreicht.html)

Angel4585 19. Dez 2012 12:27

Ergebnis von CompareDateTime wird nie erreicht?
 
Guten Tag!

Ich möchte die Funktion CompareDateTime aus der DateUtils nutzen um zwei Zeitstempel zu vergleichen.
Aufgebaut habe ich das folgendermaßen:

Delphi-Quellcode:
  FileAge(srcFile,srcDate);
  FileAge(destFile,destDate);
  case CompareDateTime(srcDate,destDate) of
  GreaterThanValue :
    begin
    //Meldung bringen und nach Benutzerentscheidung handeln
    end;
  EqualsValue:
    begin
    //Überspringen ( HIER KOMMT DAS PROGRAMM NIE REIN? )
    end;
  end;
  //Kopieren
Siehe Kommentar. Dort kommt das Programm nie rein.
Wenn ich einen Haltepunkt setze, wird der durchgestrichen.
Da ein Neustart der IDE nix hilft, denke ich es liegt irgendwie an der CompareDateTime-Funktion.

Kann mir jemand sagen warum das nicht geht?

Bummi 19. Dez 2012 12:36

AW: Ergebnis von CompareDateTime wird nie erreicht?
 
Delphi-Quellcode:
uses DateUtils,Math;
{$R *.dfm}

procedure TForm4.Button1Click(Sender: TObject);
var
 d1,d2:TdateTime;
begin
   d1 := EncodeDateTime(2012,12,19,12,11,10,0);
   d2 := EncodeDateTime(2012,12,19,12,11,10,1);

   if CompareDateTime(d1,d2) = 0 then
      begin
        Showmessage('Same');
      end else Showmessage('Not Same');

    d1 := RoundTo(d1,-6);
    d2 := RoundTo(d1,-6);
   if CompareDateTime(d1,d2) = 0 then
      begin
        Showmessage('Same ' + DateTimeToStr(d1)+' - '+DateTimeToStr(d2));
      end else Showmessage('Not Same');

end;

Angel4585 19. Dez 2012 12:39

AW: Ergebnis von CompareDateTime wird nie erreicht?
 
Danke, wie man es verwendet weis ich schon, war nur irritiert das der Debugger nicht an die Stelle kommt...

Tatsächlich geht das Programm schon da hin, aber da ich da nur ein Continue habe (was hier im beispiel fehlt) hält der Debugger dort nicht :wall:

Bummi 19. Dez 2012 12:51

AW: Ergebnis von CompareDateTime wird nie erreicht?
 
Ich hatte versucht zu zeigen dass die Datumswerte sich wahrscheinlich im ms Bereich unterscheiden und deshalb nie identisch sind und wie man damit umgehen könnte.

Ähnliches wie
Delphi-Quellcode:
   if SameValue(d1,d2,EncodeTime(0,0,0,2)) then // wenn Du 2 ms Abweichung ignorieren willst
      begin
        Showmessage('Same');
      end else Showmessage('Not Same');

Angel4585 19. Dez 2012 13:16

AW: Ergebnis von CompareDateTime wird nie erreicht?
 
Achso :) Vielen Dank! :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz