letzten Tag des Monats ermitteln

Hallo,

eine Möglichkeit wäre zum Beispiel einen kleinen DB zu erstellen, im dem
die Anzahl Tage pro Monat gespeichert sind.
Code:
DB1.DBB1 = 31
DB1.DBB2 = 28
DB1.DBB3 = 31
DB1.DBB4 = 30
DB1.DBB5 = 31
DB1.DBB6 = 30
DB1.DBB7 = 31
DB1.DBB8 = 31
DB1.DBB9 = 30
DB1.DBB10 = 31
DB1.DBB11 = 30
DB1.DBB12 = 31

Dann must du nur noch vergleichen, ob das aktuelle Datum des aktuellen Monats
gleich der im DB1.DBB xy gespeicherten Zahl ist.
Wenn das der Fall ist , hast du aktuell den letzten Tag des Monats.

Gruß
Guido
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mir fallen spontan 2 Möglichkeiten ein:

1. aus dem DT der Systemzeit Tag und Monat holen und mit Vergleicher was Zaubern. Vorteil: einfach zu basteln; Nachteil: relativ aufwändig, da viele Konstellationen (12 Monate + Schaltjahr)

2. Möglichkeit (mein Favorit)
- zu aktuellem Datum 1 addieren
- mit diesem Datum und aktueller Uhrzeit den FC 3 "D_TOD_DT" aus der IEC-Bib aufrufen um den DT für morgen zu erhalten
- aus DT für morgen den Tag holen
- Wenn 'TagMorgen' == 1 dann ist heute der letzte des aktuellen Monats
 
Hallo,

eine Möglichkeit wäre zum Beispiel einen kleinen DB zu erstellen, im dem
die Anzahl Tage pro Monat gespeichert sind.
Code:
DB1.DBB1 = 31
DB1.DBB2 = 28
DB1.DBB3 = 31
DB1.DBB4 = 30
DB1.DBB5 = 31
DB1.DBB6 = 30
DB1.DBB7 = 31
DB1.DBB8 = 31
DB1.DBB9 = 30
DB1.DBB10 = 31
DB1.DBB11 = 30
DB1.DBB12 = 31

Dann must du nur noch vergleichen, ob das aktuelle Datum des aktuellen Monats
gleich der im DB1.DBB xy gespeicherten Zahl ist.
Wenn das der Fall ist , hast du aktuell den letzten Tag des Monats.

Gruß
Guido

aber das Schaltjahr...
 
... oder du addierst einen Tag zum aktuellen Datum, und wenn sich der Monat ändert war es der letzte Tag.

Thomas

zu langsam...
 
Vielen Dank.

Ich hab das jetzt so gelöst:

Code:
      CALL  "AD_DT_TM"
       T      :="DB_Lokalzeit".Lokalzeit  // DT lokalzeit CPU
       D      :=T#1D
       RET_VAL:=#_dtTmpTag                // Tmp. Variable Offsetadr 2
 
      L     LB     4         //Byte 2 in _dtTmpTag beinhaltet den Tag aus DT
      L     DB8.DBB    2     //Tag aus "DB_Lokalzeit.Lokalzeit"
      <I                     //wenn Tag morgen kleiner als akt Tag
      =     M     15.0       //ist heute der letzte Tag im Monat

Gruß roadrunner
 
Zurück
Oben