DateAdd
DateAdd
Kurzbeschreibung
Das XML-Element
<DateAdd>dient zur Berechnung eines neuen Datums.Hierzu wird zu einem vorhandenen Datum eine definierte Anzahl von Tagen, Monaten oder Jahren addiert oder subtrahiert. Das berechnete Datum wird anschließend direkt ausgegeben.
<DateAdd>gehört zu den Funktionen der XML-Sprache und wird verwendet, wenn Datumswerte dynamisch berechnet werden sollen.
Einordnung
Bereich: Funktionen
Schwierigkeitsgrad: ⭐⭐☆☆☆
Vorkenntnisse: Variable
Siehe auch
- Variable
- Math
Zweck
Mit <DateAdd> lässt sich ein vorhandener Datumswert verändern.
Dabei können
- Tage,
- Monate oder
- Jahre
zu einem bestehenden Datum addiert oder von diesem subtrahiert werden.
Typische Einsatzgebiete sind beispielsweise:
- Fristen berechnen
- Wiedervorlagedaten bestimmen
- Vertragslaufzeiten ermitteln
- Gültigkeitszeiträume berechnen
- zukünftige oder vergangene Termine bestimmen
Grundsyntax
<DateAdd
Intervall="Tag"
Value="23"
InputFormat="dd.MM.yyyy"
OutputFormat="dd.MM.yyyy">
<Variable Path="general.today">
</Variable>
</DateAdd>Im Beispiel werden zum aktuellen Datum 23 Tage addiert.
Position innerhalb der Dokumentvorlage
Da <DateAdd> einen Wert zurückliefert, wird das XML-Element innerhalb eines <Content> verwendet.
<Block>
<Content>
<DateAdd
Intervall="Monat"
Value="1"
InputFormat="dd.MM.yyyy"
OutputFormat="dd.MM.yyyy">
<Variable Path="general.today">
</Variable>
</DateAdd>
</Content>
</Block>Das berechnete Datum wird an der Position des XML-Elements unmittelbar ausgegeben.
Attribute
| Attribut | Beschreibung |
|---|---|
| Intervall | Legt fest, ob Tage, Monate oder Jahre addiert beziehungsweise subtrahiert werden. |
| Value | Anzahl der zu verändernden Einheiten. Positive Werte addieren, negative Werte subtrahieren. |
| InputFormat | Format des Eingabedatums. |
| OutputFormat | Format des berechneten Datums. |
Hinweis
Alle Berechnungen erfolgen auf Grundlage des innerhalb von
<DateAdd>angegebenen Datums.
Werte für Intervall
Für das Attribut Intervall stehen folgende Werte zur Verfügung.
| Wert | Bedeutung |
|---|---|
| Tag | Addiert oder subtrahiert Tage. |
| Monat | Addiert oder subtrahiert Monate. |
| Jahr | Addiert oder subtrahiert Jahre. |
Unterelemente
Innerhalb von <DateAdd> wird das Datum angegeben, das verändert werden soll.
In der Praxis erfolgt dies meist über eine Variable.
<Variable Path="general.today">
</Variable>Es können grundsätzlich alle XML-Elemente verwendet werden, die einen Datumswert liefern.
Beispiele
Tage addieren
<DateAdd
Intervall="Tag"
Value="23"
InputFormat="dd.MM.yyyy"
OutputFormat="dd.MM.yyyy">
<Variable Path="general.today">
</Variable>
</DateAdd>Ergebnis:
Aktuelles Datum + 23 Tage
Monat addieren
<DateAdd
Intervall="Monat"
Value="1"
InputFormat="dd.MM.yyyy"
OutputFormat="dd.MM.yyyy">
<Variable Path="general.today">
</Variable>
</DateAdd>Ergebnis:
Aktuelles Datum + 1 Monat
Jahre addieren
<DateAdd
Intervall="Jahr"
Value="2"
InputFormat="dd.MM.yyyy"
OutputFormat="dd.MM.yyyy">
<Variable Path="general.today">
</Variable>
</DateAdd>Ergebnis:
Aktuelles Datum + 2 Jahre
Tage subtrahieren
Durch einen negativen Wert im Attribut Value kann ein Datum auch in die Vergangenheit verschoben werden.
<DateAdd
Intervall="Tag"
Value="-14"
InputFormat="dd.MM.yyyy"
OutputFormat="dd.MM.yyyy">
<Variable Path="general.today">
</Variable>
</DateAdd>Ergebnis:
Aktuelles Datum − 14 Tage
Diese Vorgehensweise eignet sich beispielsweise zur Berechnung des Beginns einer Frist oder eines zurückliegenden Datums.
Typische Einsatzgebiete
<DateAdd> wird häufig verwendet, um Datumswerte dynamisch zu berechnen.
Beispiele sind:
- Fristende berechnen
- Wiedervorlagedatum bestimmen
- Vertragsende ermitteln
- Gültigkeitszeiträume berechnen
- Erinnerungsdatum erzeugen
- Rückrechnungen durchführen
Praxisbeispiel
Eine Krankenkasse versendet ein Schreiben mit einer Widerspruchsfrist von 14 Tagen.
Das Fristende kann dynamisch berechnet werden.
<DateAdd
Intervall="Tag"
Value="14"
InputFormat="dd.MM.yyyy"
OutputFormat="dd.MM.yyyy">
<Variable Path="general.today">
</Variable>
</DateAdd>Dadurch muss das Fristdatum nicht manuell gepflegt werden und wird bei jeder Dokumenterzeugung automatisch korrekt berechnet.
Best Practices
- Datumswerte möglichst über Variablen beziehen.
- Das
InputFormatpassend zum gelieferten Datumswert wählen. - Das
OutputFormatan die gewünschte Darstellung anpassen. - Für Datumsberechnungen
<DateAdd>anstelle manueller Berechnungen verwenden. - Positive Werte für zukünftige Termine und negative Werte für Rückrechnungen verwenden.
XML-Wissen
<DateAdd> verändert den ursprünglichen Datumswert nicht.
Stattdessen wird ein neues Datum berechnet und unmittelbar ausgegeben.
Sowohl positive als auch negative Werte sind zulässig.
- Positive Werte verschieben das Datum in die Zukunft.
- Negative Werte verschieben das Datum in die Vergangenheit.
Soll das berechnete Datum später erneut verwendet werden, kann es beispielsweise mit einem <Setter> gespeichert und anschließend über eine <Variable> wieder ausgegeben werden.
Developer-Tipp
Besonders häufig wird
<DateAdd>gemeinsam mitgeneral.todayverwendet, um Fristen, Wiedervorlagen oder zukünftige Termine relativ zum aktuellen Tagesdatum zu berechnen.