PDA

View Full Version : Timestamp



sirdidi
02-05-12, 15:49
Hallo,

ich hab das Forum zwar schon durchforstet und auch schon diverse Versuche gestartet, bin aber zu meinem Problem auf keine Lösung gestossen.

Frage: ich habe im (RPGLE) ein Feld definiert "Time26" (Länge und Aufbereitung wie Timestamp) und nun will ich dem Feld einen Anfangsdatumswert und eine Zeit zuweisen und dann "Time26" in einem bestimmten Rhytmus immer z.B. 4 Stunden draufaddieren, um dann das neue Datum und die Zeit auslesen zu können.

Ich habe schon diverse Ansätze probiert, aber entweder kriege ich ewig lange Fehlermeldungen beim umwandeln oder mein Befehl ist nicht vollständig.

Kann mir jemand sagen wie der Befehl sich korrekt definiert?

TIME26 = %editw((J4MMTT, '0000-00-00-')+%editw(HHMMSS, '00.00.00') + '.000000');
hier bekomme ich ewige Fehlermeldungen beim umwandel (ok, da ist noch nichts addiert)

NewDate = %Date(%TimeStamp(TIME26) + %HOURS(A2STD));
hier bekomme ich die Meldung das mein Befehl nicht korrekt sei

Danke für Euere Hilfe.....

B.Hauser
02-05-12, 16:03
Welches Format haben denn J4MMDD und HHMMSS?

Vorausgesetzt, dass beide alphanumerisch sind, kann eine Zeitmarke wie folgt generiert werden:


MyTimestamp = %Date(J4MMDD: *ISO0) + %Time(HHMMSS: *HMS0);

Sind die Felder numerisch sieht die Konvertierung wie folgt aus:

MyTimestamp = %Date(J4MMDD: *ISO) + %Time(HHMMSS: *HMS);

Auf die fertige Timestamp können dann Zeiten addiert werden:

MyTimestamp += %Hours(MyNumFld);

Mit %Date kann dann aus der Zeitmarke wieder ein echtes Datum herausgelöst werden:

MyDate = %Date(MyTimeStamp);

Birgitta

sirdidi
03-05-12, 10:59
Wollte mich nochmal schnell bedanken!!!!

Hat jetzt alles so funktioniert. Danke ans Forum und im speziellen an Birgitta! :)