Moin, moin
ich bin es noch einmal.
Ich hab die Sache jetzt dahin umgebogen, dass ich unabhängig von den
eingestellten Datums- und Uhrzeitformaten des PCs bin. Dazu habe ich
"StrToTimeDef" und "StrToDateDef" benutzt.
Allerdings bin ich jetzt auf eine Sache gestossen, die ich nicht
verstehe (muss dazu sagen, dass ich kein Profi in Sachen Programmierung
bin, sondern das eher als Hobby betreibe um nich ganz zu verblöden).
Folgenden Quellcode habe ich erstellt:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
Datumsformat: TFormatSettings;
Zeit1,Zeit2: TDateTime;
begin
Datumsformat.DateSeparator:='-';
Datumsformat.ShortDateFormat:='yyyy-dd-mm';
Datumsformat.TimeSeparator:=':';
Datumsformat.ShortTimeFormat:='HH:mm:ss';
Memo1.Clear;
Zeit1:=(StrToDateDef('2007-10-08', -10, Datumsformat) + StrToTimeDef('10:00:00', -10, Datumsformat));
Zeit2:=(StrToDateDef('2007-10-08', -10, Datumsformat) + StrToTimeDef('10:00:00', -10, Datumsformat));
if Zeit1 < Zeit2 then
begin
Memo1.Lines.Add('Zeit1 kleiner Zeit2'); //Dies wird nie erreicht
end;
if Zeit1 < (StrToDateDef('2007-10-08', -10, Datumsformat)+StrToTimeDef('10:00:00', -10, Datumsformat)) then
begin
Memo1.Lines.Add('Zeit1 kleiner Berechnung'); //Dies wird immer erreicht
Memo1.Lines.Add('Aber warum???');
end;
Memo1.Lines.Add('');
Memo1.Lines.Add('Kurzes Datumsformat PC: '+ShortDateFormat);
Memo1.Lines.Add('Datumsseparator: '+DateSeparator);
end;
Zeit1 und Zeit2 sind identisch und die Abfrage Zeit1 kleiner Zeit2 wird auch übersprungen.
Warum aber ist bei der zweiten Abfrage mit der Berechnung statt Zeit2 die Zeit1 plötzlich kleiner ?
Kann mir das jemand erklären? Ich bin einigermassen ratlos...
Gruß, Andreas.