fn:hours-from-time
(Auszug aus "XSLT 2.0 & XPath 2.0" von Frank Bongers, Kapitel 5.)
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z
Kategorie: Wertextraktion aus Zeitwerten, Datumswerten und Dauer
Herkunft: XPath 2.0
Rückgabewert: Eine Ganzzahl vom Typ xs:integer, die dem Wert der Stundenkomponente des in normalisierte Form gebrachten übergebenen Zeitwertes xs:time entspricht.
Aufruf/Argumente:
fn:hours-from-time($zeit)
$zeit:
Optional. Eine Tageszeitangabe vom Typ xs:time, die eine Zeitzonenangabe beinhalten kann. Wird kein Wert übergeben, also die leere Sequenz, so gibt die Funktion diese zurück.
Verwendungszweck:
Ist eine explizite oder implizite Zeitzonenangabe vorhanden, so wird der übergebene Zeitwert xs:time entsprechend normalisiert. Das heißt, die Zeitzonendifferenz wird subtrahiert, wobei beim Erreichen oder Überschreiten eines Stundenwertes von 24 oder beim Unterschreiten von 0 entsprechend die Zahl 24 subtrahiert bzw. addiert wird.
Rückgabewert ist eine Ganzzahl xs:integer zwischen (inklusive) 0 und 23, die der Stundenkomponente des normalisierten Wertes entspricht.
Beispiele:
Alle folgenden Beispiele setzen eine implizite Zeitzonenangabe von -5:00 (Eastern Standard Time) voraus.
Beispiel 1 – Stunden aus Zeitangabe:
fn:hours-from-time(
xs:time("11:23:00")
)
ergibt 16.
Die Stundenzahl von 16 ergibt sich aus der Normalisierung des Wertes mit 11-(-5:00). Der (negative!) Zeitzonenfaktor wird subtrahiert, also absolut gesehen addiert. Da hierbei kein Schwellenwert überschritten wird, kann der Ergebniswert direkt ausgegeben werden.
Beispiel 2 – Stunden aus Zeitangabe:
fn:hours-from-time(
xs:time("21:23:00")
)
ergibt 2.
Die Stundenzahl von 2 ergibt sich aus der Normalisierung des Wertes mit 21-(-5:00). Der (negative!) Zeitzonenfaktor wird subtrahiert, also absolut gesehen addiert. Das Zwischenergebnis ist 26, überschreitet also die Schwelle von 24 Stunden. Das eigentliche Ergebnis errechnet sich daher aus 26-24.
Beispiel 3 – Stunden aus Zeitangabe:
fn:hours-from-time(
xs:time("19:00:00")
)
ergibt 0.
Die Stundenzahl von 0 ergibt sich aus der Normalisierung des Wertes mit 19-(-5:00). Der kanonische Wert für Mitternacht ist 00:00:00, daher wird hier nicht 24, sondern 0 (entsprechend 24-24) ausgegeben.
Beispiel 4 – Stunden aus Zeitangabe mit expliziter Zeitzone:
fn:hours-from-time(
xs:time("01:23:00+05:00")
)
ergibt 20.
Die implizite Zeitzone wird in diesem Fall nicht verwendet, da eine explizite Angabe vorliegt. Durch deren Subtraktion wird die Schwelle von 0 unterschritten, zum Zwischenergebnis muss also der Wert 24 hinzugezählt werden: 1 -(+5:00) ergibt -4; -4+24 führt zum Endergebnis 20.
Funktionsdefinition:
XPath 1.0:
Funktion nicht verfügbar
XPath 2.0:
fn:hours-from-time($arg as xs:time?) as xs:integer?
<< zurück | vor >> |
Tipp der data2type-Redaktion: Zum Thema XSLT bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an: |
Copyright © Galileo Press, Bonn 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XSLT 2.0 & XPath 2.0 ― Das umfassende Handbuch" denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.
Galileo Press, Rheinwerkallee 4, 53227 Bonn