View Full Version : Datum in numerisches Feld bringen in Free-RPG
Hallo zusammen,
habe das Problem das ich ein Datumswert (z.B. 28.10.2014) in ein 8stelliges numerisches Feld bringen muss. Das ganze in Free-RPG. Habe mit %date und %int schon alles (un)mögliche versucht. Hat jemand eine Lösung für mich?
Das ist nur mit "%dec(Date:*iso)" möglich.
Ich weiß gar nicht, wofür die IBM eigentlich die schönen PDF-Handbücher rausbringt wenn da (außer mir) sowieso keiner reinschaut.
Wenn das Feld vom Typ Datum ist: DatumN = %dec(Datum: *iso)
Bei Zeichenfelder: DatumN = %dec(%date(DatumZ: *EUR.): *iso)
KingofKning
28-10-14, 15:08
Na ja, früher haben die Pappnasen sich auch noch die Mühe gemacht die Bücher in Deutsch rauszubringen, die Kohle schenken sie sich jetzt auch schon.GG
RobertMack
28-10-14, 15:10
(und mir ;- )
Gibt's aber auch komprimiert:
http://www.mysamplecode.com/2011/05/rpgle-convert-date-to-numeric-or.html
dschroeder
28-10-14, 15:24
Habe ich die Aufgabenstellung falsch verstanden? Der Code %dec(Date:*iso) würde ein "normales" deutsches Datum in JJJJMMTT drehen. Wenn er das Datum weiterhin im deutschen Format TTMMJJJJ im numerischen Feld haben möchte, muss er %dec(Date:*eur) verwenden, denke ich.
Ich weiß gar nicht, wofür die IBM eigentlich die schönen PDF-Handbücher rausbringt wenn da (außer mir) sowieso keiner reinschaut.
Schlaumeier, hätte ich das Beispiel im Handbuch gefunden, hätte ich mich bestimmt nicht hier gemeldet. Ironie kannste behalten, den Rest nehme ich.
Ich finde die Sachen ja auch nur im Handbuch :), manches probiere ich da sogar aus.
Ansonsten kann man bei der Konvertierung eben angeben was man will:
%dec(Datum:*iso) => JJJJMMTT
%dec(Datum:*eur) => TTMMJJJJ
%dec(Datum:*jul) => JJJJTTT
Vielleicht zur Erklärung:
Ein echtes Datum ist ein numerischer Wert (sogenannte Scaliger Nr.).
Datums-Formate werden nur dazu verwendet, um den numerischen Wert lesbar zu machen.
In RPG wird die Scaliger Nr. immer beim Lesen in eine alphanumerische Repräsentation des Datums konvertiert, abhängig vom Datums-Format in den D- oder H-Specs. Ist weder in den D- noch in den H-Specs ein Datums-Format vorgegeben wird das Format *ISO verwendet.
Unmittelbar vor dem Zurückschreiben wird das alphanumerisch aufbereitete Datum wieder in die Scaliger Nr. konvertiert.
Bei dem Format, das in der Built-in-Function %DEC angegben wird, handelt es sich immer um das Ausgabe-Format, da das eigentliche Datum lediglich die konvertierte Scaliger Nr. ist.
Birgitta