User Tools

Site Tools


vba:classes:date:index

This is an old revision of the document!


[VBA] DateTime + DateInterval

Die 2 Klassen [VBA] DateTime und [VBA] DateInterval ergänzen sich gegenseitig. Inspiriert durch PHP wollte ich eine Klasse für das Datum haben, die mir verschiedene Möglichkeiten bietet ohne jedes mal mit VBA etwas basteln zu müssen.

<spoiler|Importhinweis>

  • Das Modul hat versteckte Attribute. Damit diese aktiv übernommen werden reicht es nicht aus, den Code in ein neues Modul zu kopieren. Man muss das Modul aus der Datei nach VBA importieren.
  • Im Code-Editor mit der rechten Maustaste auf den Projekt-Tree klicken und “import File…” auswählen.

</spoiler>

→ Read more...

DateTime

Version 1.2.0 26.01.2015

DateTime repräsentiert ein Datum inkl. Zeit.

Download datetime.cls (V-1.2.0)

DateInterval

Version 1.2.0 26.01.2015

DateInterval stellt ein Abstand zwischen 2 Datums dar. Als Grundlage dient ISO8601 Duration

Download dateinterval.cls (V-1.2.0)

Beispiele

Dim dt1 As DateTime: Set dt1 = DateTime(Now)
 
'Eine Stunde hinzufügen
dt1.addSingleValue "H", 1
 
'Datum formatiert ausgeben
Debug.Print dt1.format("DD.MM.YYYY HH:NN:SS")
 
'Zweites Datum definieren: 4. Dezember 2014 um 14:30:15
Dim dt2 As DateTime:    Set dt2 = DateTime.serial(2014, 12, 4, 14, 30, 15)
 
'Dierenz berechnen
Dim di As DateInterval: Set di = dt1.diff(dt2)
 
'Und ausgeben
Debug.Print di.format("E\s ge\ht \noc\h Y Ja\h\re, M \Mo\nate u\n\d D Tage")
 
'Ausgabe:
'Es geht noch 0 Jahre, 3 Monate und 12 Tage

Ein kleines Einzeilerbeispiel, bei dem 3 Moante und 4 Tage zu einem defniertem Datum hinzugezählt wird

?DateTime(#8/25/2014#).add("P3M4D").format("DD.MM.YYYY")
29.11.2014

Und dasselbe über die Serial-Methode des [VBA] DateInterval

?DateTime(#8/25/2014#).add(DateInterval.serial(,3,4)).format("DD.MM.YYYY")
29.11.2014

Fast dasselbe. Aber wir zählen 44 Tage hinzu

?DateTime(#8/25/2014#).add("P44D").format("DD.MM.YYYY")
08.10.2014
vba/classes/date/index.1422283184.txt.gz · Last modified: 26.01.2015 15:39:44 by yaslaw