Datum und Uhrzeit

Aus VBA-wiki
Version vom 10. Oktober 2018, 14:27 Uhr von Pwania (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „== Datum angeben == === Datum zuweisen === Wenn Sie ein Datum angeben möchten, empfehlen wir die Angabe des Datums als DIN-Datum: Dim dteDate As Date…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Datum angeben

Datum zuweisen

Wenn Sie ein Datum angeben möchten, empfehlen wir die Angabe des Datums als DIN-Datum:

   Dim dteDate As Date
   
   dteDate = "2015-06-29"

Folgendes ist ebenfalls möglich, sollte jedoch vermieden werden, weil diese Datumsangabe nur in einem deutschen Office eindeutig ist:

   dteDate = "29.6.2015"

Außerdem kann das gewünschte Datum mithilfe der DateSerial-Funktion angegeben werden:

   dteDate = DateSerial(2015, 6, 29)

Oder, wenn es in einer anderen Form vorliegt, mit der DateValue-Funktion ermittelt werden (hier muss das Datum von Ihrem System erkannt werden können!):

   dteDate = DateValue("12. Feb 1969")

Das aktuelle Datum wird mit der Date-Funktion abgefragt:

   dteDate = Date

Uhrzeit angeben

Die Uhrzeit kann bei der Zuweisung alleine angegeben oder an das Datum angehängt werden. Dabei wird die übliche Schreibweise für Zeitangaben im 24-Stunden-Format verwendet:

   dteDate = "23:01"
   dteDate = "2015-06-29 23:01"
   dteDate = "23:01:32"
   dteDate = "2015-06-29 23:01:32"

Die aktuelle Zeit wird mit der Time-Funktion abgefragt:

   dteDate = Time

Das aktuelle Datum inklusive der aktuellen Uhrzeit wird von der Now-Funktion zurückgegeben:

   dteDate = Now


Rechnen mit Datumswerten

Direkte Addition und Subtraktion

Datumsangaben werden in Double-Werten gespeichert. Die Stellen vor dem Komma bezeichnen die Tage seit dem 30. Dezember 1899. Die Nachkommastellen bezeichnen die Uhrzeit als Anteil eines Tages, wobei 1.0 einen ganzen Tag, 0.5 einen halben Tag (12 Stunden) usw. bedeuten.

Das direkte Addieren und Subtrahieren von Datumswerten liefert also die Angabe der Summe bzw. der Differenz in Tagen und Anteilen des Tages:

   dteDate = "2015-05-23 23:01:32"
   Debug.Print Now() - dteDate          ' Ergibt  36.6611458333355

Bei einem Ergebnis von 36 Tagen können wir davon ausgehen, dass der Unterschied über einen Monat bedeutet. Bei einem Ergebnis von 28 Tagen wäre dies davon abhängig, ob der Monat ein Februar ist und ob dieser in einem Schaltjahr liegt. Um trotzdem zuverlässige Ergebnisse zu erhalten, verwenden Sie bitte die Datumsfunktionen:

Datumsfunktionen zur Berechnung von Datumsunterschieden

Bei den Datumsfunktionen wird angegeben, welcher Intervall (Jahr, Monat, tag, Stunde, Minute, Sekunde, ...) betroffen sein soll. Wenn Sie beispielsweise zwei Tage und 3 Stunden addieren möchten, können Sie dies in zwei Schritten tun.

Mögliche Intervalle

Angabe Wert
yyyy Jahr
q Quartal
m Monat
y Tag des Jahres
d Tag
w Wochentag
ww Woche
h Stunde
n Minute
s Sekunde

Liste der Rechenfunktionen

DateAdd()
DateDiff()

Rückgabe von Datums- und Zeitangaben

DatePart()
Day()
Month()
Year()
Hour()
Second()

Datumsangaben formatieren

Format()
FormatDateTime()