View Full Version : %TIMESTAMP
Hallo liebes Forum!
Wie bekomme ich eigentlich mit %TIMESTAMP nur die Stunden und Minuten (4-stellig) heraus?
Lg und Dank im Voraus!
D ActTime T
D ActHour 5I 0
D ActMinute 5I 0
ActTime=%timestamp();
ActHour=%hour(ActHour);
ActMinute=%minutes(ActHour);
Aber gibt es eine direkt BIF, wo ich die Stunden und Minuten direkt herausbekomme?
Danke Vielmals für die rasche Antwort!
Durch Kombination:
%hour(%timestamp())
%minutes(%timestamp())
War doch nicht ganz korrekt, nun das Richtige:
%subst(%char(%time()):1:5);
Das Zeitformat hängt allerdings von den H-Bestimmungen ab.
Danke Vielmals und noch einen schönen Tag!
Es geht noch einfacher:
ActHour = %subdt(%time:*h);
ActMinute= %subdt(%time:*mn);
Zu beachten ist allerdings folgendes:
Durch die 2 getrennten Aufrufe kann es zur vollen Stunde zu falschen Angaben kommen.
Wenn die Stunde um z.B. 14:59:59.999 abgerufen wird und die Minute um 15:00:00.001 !
Es ist also besser eine Hilfsvariable zu nehmen, auch wenn das nur 1 Mal alle paar Millionen Aufrufe passieren könnte.
Genau diese Lösung schwebte mir vor!
Super!
Danke noch einmal!
Lg
Ich würde das Ganze über eine Datenstruktur lösen.
Wenn diese Datenstruktur zudem noch lokal in einer Prozedur definiert ist, kann man sie sogar mit dem System-Wert initialisieren. Ansonsten sollte man mit der Built-in-Funktion die System-Zeit ermitteln. Bei einer Datenstruktur hat man außerdem nur einen einzigen Aufruf!
D DSTime DS
D Time T inz(*Sys)
D TimeK 5A Overlay(Time)
D TimeA 8A Overlay(Time)
D HoursN 2S 0 Overlay(TimeA)
D MinutesN 2S 0 Overlay(TimeA: 4)
*---------------------------------------------------
/Free
Time = %Time();
*INLR = *On;
/End-Free
Birgitta