-
Datum um einen Tag erhöhen
wie kann man im ILE, am schnellsten ein nummerisches Feld (qDatum), welches ein Datum beinhaltet, um einen Tag erhöhen!
PHP-Code:
D qDatum S 8 0 inz(20070606)
-
ungefähr so:
%dec(%char(%date(%days(%date(%char(qDatum):*cymd0) ) + 1)):8:0)
-
Hallo,
Ich würde es so probieren:
PHP-Code:
/Free
NewDate = %Dec(%Date(qDatum: *ISO) + %Days(1): 8: 0);
/End-Free
Solltest Du noch nicht auf V5R3 sein, versuch' es so:
PHP-Code:
/Free
NewDate = %Int(%Char(%Date(qDatum: *ISO) + %Days(1): ISO0));
/End-Free
Birgitta
-
Hab noch mal nachgeschaut, wir haben def.:
Type 9406; Model 550; Rel V5R3M0
und genau dieses Statement funkt. leider nicht! :-(
PHP-Code:
/Free NewDate = %Dec(%Date(qDatum: *ISO) + %Days(1): 8: 0); /End-Free
der Compiler bringt mir dann immer folgende Fehlermeldungen:
PHP-Code:
*RNF0339 20 1 Für %DEC dürfen nur zwei Parameter angegeben werden, wenn der zweite Parameter ein Datenformat ist. *RNF0328 30 1 Der zweite Parameter für %DEC oder %DECH ist ungültig.
-
Deswegen musst du ein "%CHAR( ber. datum :*CYMD0)" einfügen.
PS:
Bei der Funktion %date beschreibt der 2. Parameter das Quellformat, in deinem Fall also *CYMD0, das Ergebnis ist immer eine variable vom Typ DATE.
Bei %char wiederum ist der 2. Parameter das Zielformat.
-
Zitat von Fuerchau
%dec(%char(%date(%days(%date(%char(qDatum):*cymd0) ) + 1)):8:0)
supergeil.
würd ich so eine zeile in nem programm hier finden, ich würd erstmal dumm gucken und danach den debugger bemühen um zu sehen was es tut
Gruß
Martin
-
Etwas richtiger (siehe Birgitta) ist:
%dec(%char(%date(qdatum:*iso0) + %days(1):*iso0):8:0)
-
Sorry,
ich hab' gepennt, das Statement muss natürlich so heißen:
PHP-Code:
/Free
NewDate = %Dec(%Date(qDatum: *ISO) + %Days(1): *ISO);
/End-Free
@Fuerchau:
Schau Dir mal die Datums-Formate an:
Für das heutige Datum liefert CYMD0: 1070606!
-
Stimmt, mit CYMD wird nur 3-stelliges Jahr geliefert, deshalb habe ich michauch verbessert.
*ISO liefert und erwartet allerdings die Trennzeichen, *ISO0 funktioniert, habe ich gerade ausprobiert.
PS:
Seit wann akzeptiert %dec ein DATE-Format ?
PPS:
Stimmt, %DEC akzeptiert ein DATE, dann gilt *ISO als Modifikator.
-
Oder so (aber ohne Gewähr)!
PHP-Code:
D QDATUM S 8P 0 INZ(20070606)
D QDATUM1 S D DATFMT(*ISO)
D
C *ISO MOVE QDATUM QDATUM1
C ADDDUR 1:*DAYS QDATUM1
C *ISO MOVE QDATUM1 QDATUM
Similar Threads
-
By steven_r in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 04-12-06, 12:16
-
By I0N in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 21-11-06, 12:44
-
By steven_r in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 20-11-06, 18:37
-
By heini in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 30-09-06, 10:10
-
By jjagi in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 07-07-06, 08:29
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks