Zum Inhalt springen

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 InputFormat passend zum gelieferten Datumswert wählen.
  • Das OutputFormat an 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 mit general.today verwendet, um Fristen, Wiedervorlagen oder zukünftige Termine relativ zum aktuellen Tagesdatum zu berechnen.

Zuletzt aktualisiert am