fn:months-from-duration

(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 xs:integer, die dem Wert der Monats­­komponente des in kanonische Form gebrachten Eingabewertes entspricht.

Aufruf/Argumente:

fn:months-from-duration($zeitdauerwert)

$zeitdauerwert:
Eine Zeitdauerangabe xs:duration, aus der, nach Umwandlung in den Typ xs:yearMonthDuration in seiner kanonischen Form PnYmM, der so resultierende Wert der Monatskomponente extrahiert wird. Wird die leere Sequenz übergeben, so gibt die Funktion eine leere Ergebnissequenz zurück.

Verwendungszweck:

Die Funktion gibt eine Ganzzahl zwischen 0 und 11 zurück, die sich aus der Monatskomponente eines Zeitdauerwertes ergibt, nach Überführung des Eingabewerts, der als beliebiger Typ xs:duration vorliegen darf, in die kanonische Form von xs:yearMonthDuration. Dies geschieht durch Entfernen der Tages-, Stunden-, Minuten und Sekundenkomponenten aus dem Zeitdauerwert mit anschließender Kanonisierung.

Wurde ein Typ xs:dayTimeDuration übergeben, so kann dieser zwar in den geforderten Typ xs:yearMonthDuration umgewandelt werden – dessen Komponenten besitzen jedoch alle den Wert 0, weshalb die Funktion für die Monatskomponente folgerichtig den Wert 0 zurückgibt.

Liegt ein übergebener Wert xs:yearMonthDuration nicht in kanonischer Form PnYmM (mit n beliebig, m < 12) vor, so werden die Komponenten zunächst in kanonische Form gebracht. Dies geschieht durch die Umrechnung der Monatskomponente in ganzzahlige Werte der Jahreskomponente.

Der verbleibende Restwert, der dem kanoni­schen Monatswert entspricht, wird ausgegeben (Beispiel: P130M wird zu P5Y10M). Für negative Zeitdauerwerte ist der zurückgegebene Wert ebenfalls negativ (siehe Beispiel 2).

Beispiele:

Beispiel 1 – Monate aus Zeitdauerwert:

fn:months-from-duration(xs:yearMonthDura­tion("P18Y14M"))

ergibt den Wert 2.

Der Wert liegt in nicht kanonischer Form vor. Der vorhandene Monatswert von 14 wird zunächst in 1 Jahr, 2 Monate umgerechnet (kanonisiert) – der Rest­wert von 2 wird als Ergebnis der Funktion ausgegeben.

Beispiel 2 – Monate aus Zeitdauerwert:

fn:months-from-duration(xs:yearMonthDuration("-P20Y18M"))

ergibt den Wert -6.

Der Wert liegt in nicht kanonischer Form vor. Der vorhandene Monatswert von 18 wird zunächst in 1 Jahr, 6 Monate umgerechnet (kanonisiert) – der Rest­wert von 6 wird, da der Zeitdauerwert negativ ist, mit negativem Vorzeichen als Ergebnis der Funktion ausgegeben.

Funktionsdefinition:

XPath 1.0:

Funktion nicht verfügbar

XPath 2.0:

fn:months-from-duration($arg as xs:duration?) 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