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 Stun­denkomponente des in normalisierte Form gebrachten übergebenen Zeitwer­tes xs:time entspricht.

Aufruf/Argumente:

fn:hours-from-time($zeit)

$zeit:
Optional. Eine Tageszeitangabe vom Typ xs:time, die eine Zeitzo­nenangabe 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 normali­siert. Das heißt, die Zeitzonendifferenz wird subtrahiert, wobei beim Errei­chen oder Überschreiten eines Stundenwertes von 24 oder beim Unterschrei­ten von 0 entsprechend die Zahl 24 subtrahiert bzw. addiert wird.

Rückgabewert ist eine Ganzzahl xs:integer zwischen (inklusive) 0 und 23, die der Stun­denkomponente des normalisierten Wertes entspricht.

Beispiele:

Alle folgenden Beispiele setzen eine implizite Zeitzonenangabe von -5:00 (Eas­tern 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 gese­hen 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 gese­hen 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 unterschrit­ten, 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