View Full Version : Aktuelles Tagesdatum / Uhrzeit konvertieren
Hi,
ich benötige in einem RPG-Programm das aktuelle Tagesdatum und die aktuelle Uhrzeit im Format CCJJMMTT bzw. HHMMSS.
Diese Werte über die TIME-Funktion zu erhalten, ist jetzt nicht das Problem. Aber der entsprechende Wert ist dann logischerweise erst einmal mit Trennzeichen versehen.
Wie bekomme ich möglichst einfach / elegant diesen aktuellen Wert in ein alphanumerisches Feld ohne Trennzeichen?
Danke!
%date(mydate:*CYMD0)
%time(mytime:*HMS0)
Danke für die schnelle Antwort Fürchau!
Leider klappt es aber trotzdem nicht.
%date ist Free-Format oder? Damit hab ich bisher leider noch nichts zu tun gehabt.
Nachfolgend ein Programmausschnitt, wie ich es versucht habe:
*
D $datum_iso S D DATFMT(*ISO)
D $datum_alpha S 8A INZ(*BLANK)
*
C TIME $datum_iso
*
/free
$datum_alpha = %date($datum_iso:*CYMD0);
/end-free
*
C EVAL *inLR = *ON
C RETURN
*
Beim übersetzen des Programmes meldet der Compiler:
*RNF0605 20 1 der erste Parameter für %DATE ist ungültig.
*RNF7416 30 1 Die Arten der Operanden auf der rechten und linken Seite des
Ausdrucks in der Operation EVAL stimmen nicht überein.
Hallo,
%Date() ist eine Built-In-Funktion, die sowohl in der klassischen Schreibweise als auch im Free-Format eingesetzt werden kann.
Das Ergebnis aus einer %Date-Funktion ist ein echtes Datum. Wenn das Tagesdatum alphanumerisch ohne Trennzeichen ausgegeben werden soll, ist außerdem eine Konvertierung mit der Built-In-Funktion %Char erforderlich. Und das Datums-Format *CYMD hat das folgende Format XJJMMDD (wobei X das Jahrhundert ist, d.h.0 = 1900, 1 = 2000, ...)
Um das Tagesdatum alphanumerisch ohne Trennzeichen im Format JJJJMMTT aufzubereiten ist lediglich das folgende Statement erforderlich:
/Free
DatumA = %Char(%Date(): *ISO0);
/End-Free
Birgitta
RobertMack
22-07-08, 13:00
... das geht auch Un-Free ;-))
C Eval DatumA = %Char(%Date(): *ISO0)
Danke Birgitta!
Hab ich dann jetzt auch verstanden und es klappt auch.
Kurze Nebenfrage:
Hat jemand einen Link zu einer aktuellen ILE RPG / Free-Format Reference?
Ich darf mich nämlich noch an der Version 3 aus Mai 1999 fortbilden:)
So müßte es auch klappen:
D DATETIME S Z
D DATE1 S D DATFMT(*ISO)
D TIME1 S T TIMFMT(*HMS)
D DATETIME2 DS
D DATE2 8A
D TIME2 6A
D************************************************* *********************
C TIME DATETIME
C MOVE DATETIME DATE1
C MOVEL DATETIME TIME1
C *ISO0 MOVE DATE1 DATE2
C *HMS0 MOVE TIME1 TIME2
C************************************************* *********************
C MOVE *ON *INLR
Hier gibt es eine aktuelle ILE RPG Referenz (http://publib.boulder.ibm.com/infocenter/iadthelp/v7r0/topic/com.ibm.etools.iseries.langref.doc/c092508602.htm).
http://publib.boulder.ibm.com/iseries/v5r2/ic2924/books/c0925084.pdf
Bitte sehr.
Edit: Der Link von Pikachu ist besser!
Die aktuelle (sprich Release 6.1) ist hier:
ILE RPG Language Reference (http://publib.boulder.ibm.com/infocenter/systems/scope/i5os/topic/rzasd/sc092508.pdf)