Operationen mit Datums-, Zeit- und Zeitstempelwerten
(Auszug aus "XSLT 2.0 & XPath 2.0" von Frank Bongers, Kapitel 3.)
Sind die erforderlichen Datentypen für die gewünschten Operationen gewährleistet, sei es durch Konstruktor oder Casting, so kann mit Zeitwerten, Datumswerten und Zeitstempeln sehr einfach gerechnet werden.
Folgende mathematischen Operationen sind für die betrachteten Werttypen möglich – es wird der jeweilige Ergebnistyp genannt:
Operator | Bezeichnung | Anwendungsbereich |
---|---|---|
+ | Addition | xs:date + xs:yearMonthDuration xs:date + xs:dayTimeDuration xs:time + xs:dayTimeDuration xs:datetime + xs:yearMonthDuration xs:datetime + xs:dayTimeDuration xs:yearMonthDuration + xs:yearMonthDuration xs:dayTimeDuration + xs:dayTimeDuration |
- | Subtraktion | xs:date – xs:date xs:date – xs:yearMonthDuration xs:date – xs:dayTimeDuration xs:time – xs:time xs:time – xs:dayTimeDuration xs:datetime – xs:datetime xs:datetime – xs:yearMonthDuration xs:datetime – xs:dayTimeDuration xs:yearMonthDuration – xs:yearMonthDuration xs:dayTimeDuration – xs:dayTimeDuration |
* | Multiplikation | xs:decimal * xs:yearMonthDuration xs:decimal * xs:dayTimeDuration |
div | Division | xs:yearMonthDuration xs:decimal xs:dayTimeDuration xs:decimal |
Tabelle: Operationen mit Datums-, Zeit- und Zeitstempelwerten.
Will man beispielsweise die Differenz zweier Datumswerte ermitteln, so kann man diese also einfach voneinander abziehen. Ergebnis ist, gemäß der oben stehenden Tabelle, ein Zeitdauerwert xs:dayTimeDuration. Die Anzahl der Tage muss noch mittels der Funktion fn:days-from-duration() extrahiert werden, da der Zeitdauerwert selbst als Stringwert etwas kryptisch wirkt:
<xsl:variable name="heute" select="fn:current-date()"/>
<xsl:variable name="dann" select="'2010-01-01'"/>
<p>Bis zum <xsl:value-of select="format-date(xs:date($dann),'[D1].[M1].[Y0001]')"/> sind es <xsl:value-of select="fn:days-from-duration(xs:date($dann) - $heute)"/> Tage.</p>
Code-Beispiel: kap03/3.05/date.xsl (Auszug).
Als weitere Funktionen zur Extraktion von Komponenten aus Zeitdauerwerten stehen zur Verfügung: fn:hours-from-duration(), fn:minutes-from-duration(), fn:months-from-duration(), fn:seconds-from-duration() und fn:years-from-duration(). Sie erfahren mehr über sie im Referenzteil, Kapitel 5, Referenz XSLT- und XPath-Funktionen.
<< 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