Delphi-PRAXiS
Seite 5 von 10   « Erste     345 67     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Nächstes Datum errechnen (https://www.delphipraxis.net/126657-naechstes-datum-errechnen.html)

Matze 30. Dez 2008 12:22

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.

Larsi 30. Dez 2008 12:24

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.

DeddyH 30. Dez 2008 12:27

Re: Nächstes Datum errechnen
 
Geht er denn auch mit verschiedenen Jahren?

Larsi 30. Dez 2008 12:27

Re: Nächstes Datum errechnen
 
Es ist auf jeden Fall ne Verbesserung :lol:

haentschman 30. Dez 2008 12:28

Re: Nächstes Datum errechnen
 
Ich habe auch lange überlegt...

kommentierter Code von Larsi..
Delphi-Quellcode:
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;
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:

Larsi 30. Dez 2008 12:31

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.

Matze 30. Dez 2008 12:32

Re: Nächstes Datum errechnen
 
Zitat:

Zitat von haentschman
das g soll im Prinzip nix anderes sein, als mit dem ersten Wert der Liste zu vergleichen.

Jain, wenn er bei 0 anfangan würde, wäre dies der Fall. Zugleich repräsentiert das g den Index mit dem kleinsten Datum.

Zitat:

Zitat von haentschman
Wenn aber der erste Wert der Liste schon kleiner ist als Now funktioniert die ganze Schose nicht mehr. :roll:

Richtig, dann ginge das ganze nicht.

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.

Meflin 30. Dez 2008 12:32

Re: Nächstes Datum errechnen
 
Zitat:

Zitat von Larsi
Kann ich nicht ganz nachvollziehen.

Soso, du kannst also deinen eigenen Code nicht mehr nachvollziehen :gruebel:

Na dann würd ich ihn nochmal von vorne schreiben :lol:

DeddyH 30. Dez 2008 12:34

Re: Nächstes Datum errechnen
 
Jetzt hätte ich beinahe meine (auch nicht optimale) Lösung gepostet, aber damit warte ich lieber noch :lol:

Larsi 30. Dez 2008 12:34

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.
Seite 5 von 10   « Erste     345 67     Letzte »    

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