Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Fortlaufende Monat Aufzählung Stoppt im Monat Dezember ??? (https://www.delphipraxis.net/181283-fortlaufende-monat-aufzaehlung-stoppt-im-monat-dezember.html)

Perlsau 1. Aug 2014 19:01

AW: Fortlaufende Monat Aufzählung Stoppt im Monat Dezember ???
 
Zitat:

Zitat von sammynrw (Beitrag 1267299)
erste tag des monats und der letzte tag des monats ...

aber er rechnet nur bis zum November ... dann kommt die fehler meldung :(

Hast du überhaupt gelesen, was bisher gepostet wurde? Und wenn ja, hast du daran etwas nicht verstanden? Nicht nur ich habe doch bereits ausführlich erläutert, weshalb ein ungültiges Datum entsteht, wenn du einfach Monate addierst, ohne zu überprüfen, ob da nicht ein Wert > 12 herauskommt. Ich weiß ja nicht, wie es sich dort, wo du lebst, verhält, aber hier wo ich lebe hat ein Jahr genau 12 Monate. Einen Monat mit der Nummer 13 gibt es nicht. Auch keinen mit der Nummer 14 oder 15. Ist der Groschen jetzt gefallen?

Wenn du den ersten und den letzten Tag eines Monats benötigst, ist das einfach: der erste Tag ist immer der 1. Der letzte Tag ist der DaysInAMonth. Diese Funktion hatte ich in 10 Sekunden als die richtige erkannt, nachdem ich in der Suchmaske zur Delphi-Referenz einfach Dateutils eingegeben hatte.

himitsu 1. Aug 2014 19:07

AW: Fortlaufende Monat Aufzählung Stoppt im Monat Dezember ???
 
PS: Dein letztertagdesmonats ist auch noch defekt.
Schau mal genau in deinen IF-Block rein, genau auf den Monat.

(oder verwende einfach die vorhandenen funktionierenden Funktionen der RTL)



Genau deswegen knallt es bereit im Dezember.
Und dann nochmal das bereits genannte Problem, ab der 13. Monatsmiete, da ebenfalls über 12 Monate als Differenz.


Alle Probleme würde man auch gut durch Debuggen finden, indem man sich mal anschaut, was bei den Berechnungen eigentlich raus kommt.

Helmi 1. Aug 2014 19:17

AW: Fortlaufende Monat Aufzählung Stoppt im Monat Dezember ???
 
Hallo,

das hier ist doch viel rumgerechnet um nichts:

Delphi-Quellcode:
function monatsberechnung(monatfeld: Integer): TDate;
var
   jahr, monat, tag: word;
   Tage : Integer;
begin
{...}

   tage := tag;
{...}
    tag := tag - tage+2;

{...}
end;
Tag ist so ja immer 2

Sir Rufo 1. Aug 2014 19:33

AW: Fortlaufende Monat Aufzählung Stoppt im Monat Dezember ???
 
Erster Tag des Monats (Tag 1 vom aktuellen Monat und Jahr)
Delphi-Quellcode:
function GetFirstDateOfMonth( ADate : TDate ) : TDate;
var
  LYear, LMonth, LDay : word;
begin
  DecodeDate( ADate, LYear, LMonth, LDay );
  Result := EncodeDate( LYear, LMonth, 1 );
end;
Letzter Tag des Monats (ein Tag vor dem 1. Tag des nächsten Monats)
Delphi-Quellcode:
function GetLastDateOfMonth( ADate : TDate ) : TDate;
begin
  Result := IncDay( IncMonth( GetFirstDateOfMonth( ADate ), 1 ), -1 );
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:04 Uhr.
Seite 2 von 2     12   

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