[NEWSboard IBMi Forum]
Seite 2 von 2 Erste 1 2

Hybrid View

  1. #1
    Registriert seit
    Jul 2003
    Beiträge
    10
    Moint miteinander,

    und nochmals Danke für die neuesten Lösungsvorschläge. Das CL mit dem CVTDAT von Alexander ist genau das was ich brauche. Einfach genial, genial einfach, manchmal dauert es eben etwas bis man drauf kommt . In Kombination mit dem zuvor beschriebenen DTAARA in dem ich den abzurechnenden Monat hinterlege, kann ich nun den zugehörigen Monatsletzten ermitteln.

    Vielen Dank an Euch alle für Eure Unterstützuung, echt Klasse !

    Jobra

  2. #2
    Alexander Besucher/Guest
    Ich bin froh, dass mein CL dir passt.

  3. #3
    Registriert seit
    Nov 2002
    Beiträge
    13
    Zitat Zitat von Thimi
    Hi FREEK,
    Quote on:

    Monat WHEQ 2
    Jahr DIV 4 ZwischenResultat
    MVR Rest
    Rest IFEQ 0
    Z-ADD 29 LetzterTag
    * Schaltjahr im Februar 29 Tage!!
    ELSE
    Z-ADD 28 LetzterTag
    ENDIF
    ENDSL
    Quote off

    Die Regelung mit dem Säkularjahr wird dabei nicht berücksichtigt.
    Das Jahr 2100 ist kein Schaltjahr (werden wir zwar nicht mehr erleben!)
    Schaltjahr im Säkularjahr ist: Die Jahreszahl ist durch 400 teilbar. Die Jahre 1700, 1800 und 1900 stellten also so genannte Gemeinjahre zu 365 Tagen dar. Die Jahre 1600 und 2000 waren dagegen Schaltjahre zu 366 Tagen.
    Gruss aus HH
    Thierry

    Da hast Du natürlich recht, aber es gibt sehr wenige Leute, die 400 Jahre lange leben

    Dann müsste man noch durch 400 Teilen und wenns aufgeht trotzdem nur 28 in den letzten Tag schreiben.. oder war das anders rum?
    Wer anderen eine Grube gräbt besitzt ein Grubengrabgerät.

  4. #4
    Joe is offline [professional_User]
    Registriert seit
    Mar 2001
    Beiträge
    365
    Hallo Alexander.

    Bei CVTDAT sollte man vorher die Bedienerhilfe anschauen.
    Der Datumsbereich geht max. bis 1928 zurück, das kann bei
    sehr alten RPG-Programmierern schon mal zu Problemen führen. z. B. prüfen von Geburtstagen.

    Gruss Joe

  5. #5
    Registriert seit
    Aug 2004
    Beiträge
    923

    cvtdat

    Zitat Zitat von Joe
    Hallo Alexander.

    Bei CVTDAT sollte man vorher die Bedienerhilfe anschauen.
    Der Datumsbereich geht max. bis 1928 zurück, das kann bei
    sehr alten RPG-Programmierern schon mal zu Problemen führen. z. B. prüfen von Geburtstagen.

    Gruss Joe
    und nicht zu vergessen die obergrenze 9.mai 2071 !
    stichwort versicherungsverträge usw...

    :-))

    aber jeder der mal ne stunde auf der kiste gearbeitet hat weiss das ja eh...

    in diesem sinne...

    kuempi

  6. #6
    Unregistriert Besucher/Guest
    Hallo Herr Kuempi von Stein

    die Antwort habe ich schon registriert aber nicht so richtig verstanden.
    Ich arbeite sehr wohl mit Geburtsdaten die sehr weit in das letzte
    Jahrtausend (Millenium (für die jüngeren unter uns)) zurückgreifen und
    da habe ich mit CVTDAT relativ grosse Probleme.

    Ich lasse mich gerne diesbezüglich belehren!

    gruss Joe

  7. #7
    Registriert seit
    Jan 2005
    Beiträge
    34

    Question uebersicht ueber die befehle %date...

    hallo @alle,
    ich finde die moeglichkeiten wie %date... sehr interessant. da die bei uns nicht zum einsatz kommen hab ich die frage ob jemand einen link zu der uebersicht der einzelnen %XXX optionen nennen kann, wenn moeglich in deutsch ;-)
    vielen dank

    juniorprog



    Zitat Zitat von B.Hauser
    Hallo Jobra,

    mit CL ist das nicht so ganz einfach!
    Aber kannst Du nicht eine kleine RPG-Funktion oder -Programm schreiben, das den Monatsletzen ermittelt?
    Was willst Du? Das Datum oder den Tag?

    Hier ist ein Beispiel, wie aus einem numerischen Datum (JJJJMMTT) der Monatsletzte im gleichen Format ermittelt wird.
    Code:
    D DateNum S 8P 0 inz(20040525) 
    D DateNxtMon S D 
    D MonthEnd S D 
    D MonthEndNum S 8P 0 
    *****************************************************
    C Monitor 
    C Eval DateNxtMon = %Date(DateNum) + %Months(1) 
    C Eval DateNew = DateNxtMon 
    C - %Days(%SubDt(DateNxtMon:*D))
    C Move DateNew MonthEndNum 
    C MonthEndNum dsply 
    C on-Error 
    C 'Ungült.Dat.' dsply 
    C EndMon 
    C eval *InLR = *on

Similar Threads

  1. PAGRTT aus Printer-File ermitteln
    By MatthiasK in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 10-01-07, 13:26
  2. Dateigröße ermitteln und anzeigen
    By Bratmaxxe in forum NEWSboard Programmierung
    Antworten: 9
    Letzter Beitrag: 08-01-07, 09:50
  3. nach Insert neu gen. Datensatz ermitteln
    By M.Kasper in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 25-08-06, 07:32
  4. SQL Select mit SUM aus einer DB
    By JonnyRico in forum NEWSboard Programmierung
    Antworten: 14
    Letzter Beitrag: 30-03-06, 12:33
  5. Letzter Tag des Monats
    By HPKahn in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 17-05-05, 14:07

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •