Funktionreferenz


_DateAdd

Beschreibung anzeigen in

Berechnet ein neues Datum bzw. eine neues Uhrzeit durch das addieren bzw. subvtrahieren von Zeitintervallen basierend auf einem gegebenen Datum bzw. einer gegebenen Uhrzeit

#include <Date.au3>
_DateAdd ( $sType, $vNumber, $sDate )

Parameter

$sType zu verwendende Zeitintervalle:
D - Addiert eine Anzahl von Tagen zu dem angegebenen Datum hinzu bzw. subtrahiert diese davon
M - Addiert eine Anzahl von Monaten zu dem angegebenen Datum hinzu bzw. subtrahiert diese davon
Y - Addiert eine Anzahl von Jahren zu dem angegebenen Datum hinzu bzw. subtrahiert diese davon
w - Addiert eine Anzahl von Wochen zu dem angegebenen Datum hinzu bzw. subtrahiert diese davon
h - Addiert eine Anzahl von Stunden zu dem angegebenen Datum hinzu bzw. subtrahiert diese davon
n - Addiert eine Anzahl von Minuten zu dem angegebenen Datum hinzu bzw. subtrahiert diese davon
s - Addiert eine Anzahl von Sekunden zu dem angegebenen Datum hinzu bzw. subtrahiert diese davon
a - Addiert eine Anzahl von Tagen, Stunden, Minuten und Sekunden zu dem angegebenen Datum hinzu bzw. subtrahiert diese davon
$vNumber Anzahl von Intervallen die addiert oder subtrahiert werden sollen (für Subtraktion ist ein Minus zu verwenden)
oder ein $vNumber[4] für zu addierende bzw. subtrahierende Werte [Tagen, Stunden, Minuten, Sekunden]
$sDate Ausgangsdatum im Format YYYY/MM/DD[ hh:mm:ss]

Rückgabewert

Erfolg: berechnetes Datum.
Fehler: 0 und setzt das @error Flag auf ungleich 0
@error: 1 - $sType ungültig
2 - $vNumber ungültig
3 - $sDate ungültig

Bemerkungen

Ein gültiges Ausgangsdatum muss zwischen "2000/01/01 00:00:00" und "3000/12/31 23:59:59" liegen.

Diese Funktion gibt kein ungültiges Datum zurück. 2004/01/31 + 3 Monate ergibt 2004/04/30.

Siehe _DateTimeSplit() für andere mögliche Datumsformate.
Das Datum muss in der Form YYYY-MM-DD hh:mm:ss angegeben werden. Statt "-" kann auch "/" oder "." als Trennzeichen verwendet werden.
Die Angabe von "hh:mm:ss" ist optional.

Verwandte Funktionen

_DateDiff, _DateTimeSplit, _DateToDayOfWeek, _DateToDayOfWeekISO, _DateToDayValue, _DayValueToDate

Beispiel

Beispiel 1

#include <Date.au3>
#include <MsgBoxConstants.au3>

; Addiert zum heutigen Datum 5 Tage dazu
Local $sNewDate = _DateAdd('d', 5, _NowCalcDate())
MsgBox($MB_SYSTEMMODAL, "", "Heute + 5 Tage: " & $sNewDate)

; Subtrahiert vom heutigen Datum 2 Wochen
$sNewDate = _DateAdd('w', -2, _NowCalcDate())
MsgBox($MB_SYSTEMMODAL, "", "Heute minus 2 Wochen: " & $sNewDate)

; Addiert zur jetzigen Zeit 15 Minuten
$sNewDate = _DateAdd('n', 15, _NowCalc())
MsgBox($MB_SYSTEMMODAL, "", "Aktuelle Zeit + 15 Minuten: " & $sNewDate)

; Addiert zum 01.01.1970 1087497645 Sekunden und gibt das neue Datum zurück
$sNewDate = _DateAdd('s', 1087497645, "1970/01/01 00:00:00")
MsgBox($MB_SYSTEMMODAL, "", "Datum: " & $sNewDate)

Beispiel 2 Skript mit $sType = „a“

#include <Date.au3>
#include <MsgBoxConstants.au3>

Local $sStartDate = "2024/08/19 18:25:59"
Local $sEndDate = "2024/08/20 16:25:00"

Local $aDiffDate = _DateDiff("a", $sStartDate, $sEndDate)

Local $sAddDate = _DateAdd("a", $aDiffDate, $sStartDate)

Local $iError = 0
If $sAddDate <> $sEndDate Then $iError = $MB_ICONERROR
MsgBox($MB_SYSTEMMODAL + $iError, "Ergebnisse", "$sStartDate = " & $sStartDate & @CRLF & _
        "$sEndDate = " & $sEndDate & @CRLF & @CRLF & _
        "$Diff Tage = " & $aDiffDate[0] & @CRLF & _
        "$Diff Stunden = " & $aDiffDate[1] & @CRLF & _
        "$Diff Minuten = " & $aDiffDate[2] & @CRLF & _
        "$Diff Sekunden = " & $aDiffDate[3] & @CRLF & @CRLF & _
        "Fügt Datum hinzu = " & $sAddDate & @TAB & ($iError ? "<<< KO >>>": "OK"))