Nun werden meine Werte mit Datum in das Array eingetragen. Aber wenn ich Abfahrt - Ankunft rechne klappt es immer noch nicht. Bin mir ziemlich sicher, dass dort ein Minus Wert herauskommt, ich weiß aber nicht warum.
Zum Aufbau: Eingegeben wird Ankunftszeit, Abfahrtszeit und Verspätung. Falls die Pause zwischen Ankunft und Abfahrt kleiner ist als die Verspätung, wird die normale Abfahrtszeit ausgegeben. Andernfalls soll die Ankunftszeit + Verspätung ausgegeben werden.
Code:
//Liste ausgeben
StelleEintrag:=0;
//Wenn Verspätung größer als Pause zwischen Ankunft und Abfahrt, Abfahrt verändern
if Liste[StelleEintrag].Abfahrt-Liste[StelleEintrag].Ankunft<Liste[StelleEintrag].Verspätung then begin
while ((StelleEintrag < length(Liste)) and (StelleEintrag<LängeListe)) do begin
ListBox1.Items.Strings[StelleEintrag]:=
' '+Liste[StelleEintrag].Linie+ Tab +
Liste[StelleEintrag].Ziel+Tab+
(DateTimeToStr(Liste[StelleEintrag].Ankunft+Liste[StelleEintrag].Verspätung))+' Uhr'+Tab+
TimeToStr(Liste[StelleEintrag].Verspätung)+Tab+'h';
StelleEintrag:=StelleEintrag+1;
end;
end else
//Wenn Verspätung kleiner als Pause zwischen Ankunft und Abfahrt, Abfahrt nicht verändern
while ((StelleEintrag < length(Liste)) and (StelleEintrag<LängeListe)) do begin
ListBox1.Items.Strings[StelleEintrag]:=
' '+Liste[StelleEintrag].Linie+ Tab +
Liste[StelleEintrag].Ziel+Tab+
DateTimeToStr(Liste[StelleEintrag].Abfahrt)+' Uhr'+Tab+
TimeToStr(Liste[StelleEintrag].Verspätung)+Tab+'h';
StelleEintrag:=StelleEintrag+1;
end;
Funktioniert alles super, außer wenn die Ankunftszeit z.b. 25.08.2011 um 23:45 Uhr und Abfahrtszeit 26.08.2011 00:10 Uhr ist