prevnext   » Startseite » Haupt-Referenz » Funktions-Referenz » printInterval()

printInterval()

textausgabe eines Zeitintervalles

Syntax:

string printInterval ( time, format_or_mode, total_fw )
string printInterval ( time, format_or_mode, total_fw, escape_char )

Parameter:

time Bei diesem Parameter handelt es sich um eine Datums- und/oder Zeitangabe. Der Parameter muss vom Typ NONE, INT32, INT64, FLOAT oder STRING sein. Weitere Details zu Zeitangaben sind unter »Zeitangaben« beschrieben.
format_or_mode Formatzeichenkette oder Anzahl der Dezimalbruchstellen bei der Sekundenanzeige
total_fw Minimale Feldweite der gesamten Ausgabe. Die Ausgabe wird rechtbündig dargestellt und ggf. mit führenden Leerzeichen ausgefüllt.
escape_char Escape-Zeichen der Formatanweisung, Normalerweise '%'.

Beschreibung:

Das Zeitintervall time wird formatiert ausgegeben. Dazu wird ähnlich wie bei fprintf() eine Format-Zeichenkette format verwendet. Diese Format-Zeichenkette enthält Steuersequenzen, die interpretiert werden und berechnete Ausgabe erzeugen. Zeichen ausserhalb dieser Steuersequenzen werden 1:1 kopiert.

Eine Steuersequenz beginnt mit dem Zeichen escape, welches normalerweise '%' ist. Möchte man das escape-Zeichen selbst darstellen, dann muss es doppelt in der Format-Zeichenkette format vorhanden sein, z.B. '%%'.

Für die weitere Beschreibung wird davon ausgegangen, dass '%' das Steuerzeichen ist.

Ein Steuerelement hat grundsätzlich das folgende Format, wobei Teile in eckigen Klammern [] optional sind:
'%' flags [ '{' text '}' ] [field_width] ['.' prec] control.

Kode Beschreibung
'%' Das durch den Parameter escape spezifizierte Zeichen (Voreinstellung '%') leitet die Steuersequenz ein. Möchte man das escape-Zeichen selbst darstellen, dann muss es doppelt vorhanden sein, z.B. "%%".
flags Die Flags sind eine beliebige Kombination aus den Zeichen ?, !, #, ' und 0. Die Bedeutung ist in der nachfolgenden Tabelle beschreben.
'{' text '}' Alternativ kann auch '[' text ']' mit eckigen anstatt geschweiften Klammern verwendet werden.

Anstatt des Zahlenwertes wird der angegebene Text in Abhängigkeit des Wertes ausgegeben. Der Text wird dabei durch Pipezeichen ('|') in verschiedenen Segmente unterteilt. Ist nur ein Segment vorhanden, dann wird der Text nur dann ausgegeben, wenn der zugehörige Wert nicht Null ist.

Bei 2 oder mehr Segmenten wird das Segment mit dem des Wertes entsprechenden Index (Nnullbasiert) ausgegeben. Bei einem Wert <=0 wird das Segment #0 ausgegeben, bei dem Wert =N das Segment #N. Für größere Werte wird immer das letzte Segment ausgegeben.

Bei der Interpretation des Textes hat der Backslash ('\') eine bsondere Bedeutung: Das folgende Zeichen verliert seine Sonderbedeutung und wird als normales Zeichen interpretiert. Damit können u.a. die drei Zeichen '\', '|' und ']' im Text verwendet werden.

Beispiel:
Der Formatstring "%?'M%[| Minute | Minuten ]M%?1s%[| Sekunde| Sekunden]s%[Null|]S" erzeugt je nach Zeit Ausgaben wie z.B. "1.234 Minuten", "2 Minuten", "1 Minute 2 Sekunden", "1 Minute 1 Sekunde", "1 Minute", "59 Sekunden", "1 Sekunde" oder "Null".

field_width Diese vorzeichenlose Zahl im Dezimalsystem gibt die minimale Feldweite für die Darstellung eines numerischen Tags an. Sollte die Darstellung der Zahl weniger als field_width Zeichen benötigen, so werden links von der Zahl soviele Leerzeichen oder Nullen eingefügt bis die geforderte Feldweite erreicht wird. Ohne Angabe einer Feldweite wird die natürliche Feldweite des aktuellen Elementes (siehe nächste Tabelle) verwendet.

Werte >100 werden als ==100 interpretiert, d.h. die maximale Feldweite eines Elementes beträgt 100.

'.' prec Die vorzeichenlose Zahl prec (Dezimalsystem) gibt die Anzahl der Nachkommastellen für die Tags 's', 'S', 't', 'T' und 'c' an; für andere Tags wird diese Angabe ignoriert.

Werte >9 werden als ==9 interpretiert. Zur Darstellung der Nachkommastellen wird die Variable #nsec_of_sec verwendet.

control Mit diesem Zeichen wird festgelegt, was dargestellt werden soll. Hierfür sind alle Buchstaben (a-z und A-Z) und die Zeichen '?', '+' und '-' reserviert. Details sind in der nächsten Tabellen beschrieben.

Die folgende Tabelle beschreibt alle Flags:

Flag Beschreibung
'?' Es wird nur dann etwas ausgegeben, wenn die zum Tag gehörende Nummer !=0 ist oder bereits etwas anderes ausgegeben wurde.
'!' Es wird nur dann etwas ausgegeben, wenn die zum Tag gehörende Nummer !=0 ist.
' Die Ziffern von große Zahlen werden in 3-Gruppen zusammengefasst und duch einen Punkt voneinander getrennt.
'#' Wird der Zahlenwert ausgegeben, dann wird ein zusätzliches Zeichen als Faktorzeichen angehängt. Dieses Zeichen zählt nicht zur Feldweite und ist eines aus 'wdhms' (Week, Day, Hour, Min, Sec).
'0' Bei Zahlen wird zum Erreichen der Feldweite der Bereich mit der Ziffer Null anstatt mit dem Leerzeichen aufgefüllt.

Die folgende Tabelle zeigt alle control-Kodes:

Kode fw* Beschreibung
'n' 3 Die Nanosekunden-Anteile einer Mikrosekunde (Variable #nsec) werden ausgegeben. Der Wertebereich ist normalerweise: [000..999].
'N' 9 Die Nanosekunden-Anteile einer Sekunde (Variable #nsec_of_sec) werden ausgegeben. Der Wertebereich ist normalerweise: [000000000..999999999].
'u' 3 Die Mikrosekunden-Anteile einer Millisekunde (Variable #usec) werden ausgegeben. Der Wertebereich ist normalerweise: [000..999].
'U' 6 Die Mikrosekunden-Anteile einer Sekunde (Variable #usec_of_sec) werden ausgegeben. Der Wertebereich ist normalerweise: [000000..999999].
'i' 3 Die Millisekunden-Anteile einer Sekunde (Variable #msec) werden ausgegeben. Der Wertebereich ist normalerweise: [000..999].
's' 2 Die Sekunden-Anteile einer Minute (Variable #sec) werden ausgegeben. Der Wertebereich ist normalerweise: [00..59].

Wurde prec>0 angegeben, dann wird ein Punkt und eine entsprechende Anzahl (aber maximal 9) von Nachkommastellen mit ausgegeben. Dieses Nachkommastellen werden aus der Variable #nsec_of_sec gebildet.

'S' Die Gesamtanzahl der ganzen Sekunden (Variable #total_sec) wird ausgegeben.

Wurde prec>0 angegeben, dann wird ein Punkt und eine entsprechende Anzahl (aber maximal 9) von Nachkommastellen mit ausgegeben. Dieses Nachkommastellen werden aus der Variable #nsec_of_sec gebildet.

'm' 2 Die Minuten-Anteile einer Stunde (Variable #min) werden ausgegeben. Der Wertebereich ist normalerweise: [00..59].
'M' Die Gesamtanzahl der ganzen Minuten (Variable #total_min) wird ausgegeben.
'h' 2 Die Stunde-Anteile eines Tages (Variable #hour) werden ausgegeben. Der Wertebereich ist normalerweise: [00..23].
'H' Die Gesamtanzahl der ganzen Stunden (Variable #total_hour) wird ausgegeben.
'd' Die Tages-Anteile einer Woche (Variable #day) werden ausgegeben. Der Wertebereich ist normalerweise: [0..7].
'D' Die Gesamtanzahl der ganzen Tage (Variable #total_day) wird ausgegeben.
'w' Die Anzahl der ganzen Wochen (Variable #week) wird ausgegeben.
'b' Es werden fw Leerzeichen ausgegeben, wenn schon mindestens ein anderes Zeichen ausgegeben wurde.
'-' Drucke ein '-' (Minuszeichen), falls #is_neg == true. Die Feldweite wird ggf. mit Leerzeichen (nicht mit Nullen) aufgefüllt.
'+' Drucke ein '-' (Minuszeichen), falls #is_neg == true, und sonst ein '+' (Pluszeichen). Die Feldweite wird ggf. mit Leerzeichen (nicht mit Nullen) aufgefüllt.
':' Diese Regel gilt für alle Sonderzeichen mit Ausnahme von '+', '-', '?' und escape: Drucke das folgende Sonderzeichen, wenn schon mindestens ein anderes Zeichen ausgegeben wurde.
't' Dieses Zeichen ist eine Kurzform und entspricht "%?H%:%?m%:%0s". Damit wird eine Zeitangabe in den Formaten von 'S' bis 'HH:MM:SS' ausgegeben.
'T' Dieses Zeichen ist eine Kurzform und entspricht "%?d%b%?h%:%?m%:%0s". Damit wird eine Zeitangabe in den Formaten von 'S' bis 'D HH:MM:SS' ausgegeben.
'W' Dieses Zeichen ist eine Kurzform und entspricht "%?#w%?#d%b%?#h%?#m%#0s". Damit wird eine Zeitangabe in den Formaten von 'S' bis 'WwDd HH:MM:SS' ausgegeben.
'c' 5 Die Zeitangabe wird kompakt ausgegeben, d.h. es werden nur die relevanten Zeitfaktoren ausgegeben.

Prinzipiell wird die Zeit im Format '####y##w#d##h##m##s' dargestellt. Es werden aber immer nur 3 bis 5 Zeichen (==Feldweite) beginnend beim ersten nicht Nullwert ausgegeben.

Falls Sekunden angezeigt werden und prec>0 und genügend Platz vorhanden ist, dann werden auch entsprechend viele Nachkommastellen angezeigt. Dabei wird der Buchstabe 's' zu gunsten eines Puntkes unterdrückt.

'C' Dieses Zeichen ist eine Kurzform und entspricht "%!#w%!#d%!#h%!#m%!#s". Die Zeitangabe wird kompakt ausgegeben, ohne jedoch die Genauigkeit einzuschränken. Damit werden nur Zellen ausgegeben, die ungleich Null sind.

* Wird keine Feldweite für ein Feld angegeben und sind bereits Zeichen ausgegeben worden, dann wird:

  1. die in der Spalte 'fw' angegebene Feldweite verwendet.
  2. die Feldweite mit Nullen aufgefüllt.

Funktionsergebnis:   STRING

Als Funktionsergebnis wird der erzeugte Text geliefert.

Siehe auch:
 Zeitangaben   printTime()   scanInterval()   time() 

Weitere ähnliche Funktionen:

Datum & Zeit
Funktion Kurzinfo
date() Zeitangabe in das Datumsformat (INT32) wandeln.
dayName()
easterDate() Berechne den Ostersonntag einen gegebenen Jahres.
easterDayOfMarch() Berechne den Ostersonntag einen gegebenen Jahres und liefere den März-Tag.
monthName()
mSec() Relative Zeit in Millisekunden zu einem nicht weiter definiertem Startpunkt.
nSec() Relative Zeit in Nanosekunden zu einem nicht weiter definiertem Startpunkt.
printInterval() textausgabe eines Zeitintervalles
printTime() Formatierte Ausgabe einer Datums- und Zeitangabe.
scanInterval()
scanTime()
sec() Relative Zeit in Sekunden zu einem nicht weiter definiertem Startpunkt.
selectTime() Eine einzelne Komponenten (von Sekundenbruchteil bis Jahr) einer Zeitangabe errechnen.
splitTime() Die einzelnen Komponenten (von Sekundenbruchteile bis Jahr) einer Zeitangabe errechnen.
time() Zeitangabe in das Zeitformat (INT64) wandeln.
unix2date() Eine Zeitangabe im Unix-Format in eine Zeitangabe im Datumsformat wandeln.
unix2time() Eine Zeitangabe im Unix-Format in eine 64-Bit-Zeitangabe wandeln.
unixTime() Zeitangabe in das Unix-Zeitformat (INT32) wandeln.
uSec() Relative Zeit in Mikrosekunden zu einem nicht weiter definiertem Startpunkt.
 
Formatierte Ausgabe
Funktion Kurzinfo
hexDump() Eine Zeichenkette als Hex-Dump ausgeben.
Print() Einen formatierten Text erzeugen.
printBitField() Ein Bitfeld in eine textuelle Darstellung überführen.
printFileName()
printInterval() textausgabe eines Zeitintervalles
printRoman() Ganzzahl in römischer Schreibweise ausgeben.
printTime() Formatierte Ausgabe einer Datums- und Zeitangabe.
string()