![]() |
Re: Nächstes Datum errechnen
Larsi, du wolltest nur wissen, ob deine Lösung besser ist. Als Antwort kommt genaugenommen nur ein "Ja" oder "Nein" in Frage. Mache Sharky also keine Vorwürfe.
Ich habe deinen Code kommentiert und dir deinen Fehler genannt. Theoretisch sollte es dann passen, auch wenn der ständige Zugriff auf die VCL nicht empfehlenswert ist, aber es müsste dann funktionieren. Edit: Es gibt natürlich schon schönere Lösungen. Nicht dass es so aussieht, als halte ich das für eine Musterlösung. :mrgreen: Ich wollte nur, dass er mal ein Erfolgserlebnis hat und vielleicht merkt, dass er zukünftig selbst mit etwas mehr Überlegen hinter eine mögliche Lösung kommen kann. |
Re: Nächstes Datum errechnen
Wenn der erste Code NICHT geht aber der schon, dann würde ich schon sagen, dass der Code besser ist.
|
Re: Nächstes Datum errechnen
Geht er denn auch mit verschiedenen Jahren?
|
Re: Nächstes Datum errechnen
Es ist auf jeden Fall ne Verbesserung :lol:
|
Re: Nächstes Datum errechnen
Ich habe auch lange überlegt...
kommentierter Code von Larsi..
Delphi-Quellcode:
das g soll im Prinzip nix anderes sein, als mit dem ersten Wert der Liste beim ersten Durchlauf zu vergleichen. Wenn aber der erste Wert der Liste schon kleiner ist als Now funktioniert die ganze Schose nicht mehr. :roll:
var
i: Integer; g: integer; begin g := 1; // was das soll weiß nur Larsi, eine 0 könnte ich noch verstehen // er geht in einer Schleife alle Einträge durch ... for i := 0 to Listview1.Items.count - 1 do begin // ... prüft nach dem Konvertierungs-Gewurschtel von "Now" ob die Einträge in der Zukunft liegen ... if StrToDate(DateToStr(Now)) < StrToDate(Listview1.Items.Item[i].SubItems.Strings[0]) then begin // ... und dann, ob der Eintrag, der in der Schleife überprüft wird, // kleiner ist als der Index des Minimum-Eintrags (Index g) ... if StrToDate(Listview1.Items.Item[i].SubItems.Strings[0]) < StrToDate(Listview1.Items.Item[g].SubItems.Strings[0]) then // ... und setzt den neuen Min-Index falls der Listeneintrag kleiner ist g := i; end; end; ShowMessage(Inttostr(g)); end; |
Re: Nächstes Datum errechnen
Also bei mir geht es auch wenn der erste Eintrag schon kleiner ist als now. Kann ich nicht ganz nachvollziehen.
|
Re: Nächstes Datum errechnen
Zitat:
Zitat:
Ich weiß ja nicht, was Larsi will, aber er scheint zufrieden zu sein. Edit: Wobei, er fragt ja explizit ab, ob der Eintrag in der Zukunft liegt und prüft nur dann weiter. Das möchte er vermutlich. |
Re: Nächstes Datum errechnen
Zitat:
Na dann würd ich ihn nochmal von vorne schreiben :lol: |
Re: Nächstes Datum errechnen
Jetzt hätte ich beinahe meine (auch nicht optimale) Lösung gepostet, aber damit warte ich lieber noch :lol:
|
Re: Nächstes Datum errechnen
Wenn ich den ersten Wert beispielsweise
01.01.1950 nenne, dann sollte es doch nicht gehen oder? Tuts aber. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz