User Tools

Site Tools


vba:classes:date:index

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
vba:classes:date:index [26.01.2015 16:17:54]
yaslaw
vba:classes:date:index [28.06.2016 11:46:22] (current)
yaslaw
Line 1: Line 1:
 ~~DISCUSSION~~ ~~DISCUSSION~~
 <​const>​ <​const>​
-    versiondt=1.2.0 +    versiondt=1.9.1 
-    vdatedt=26.01.2015 +    vdatedt=28.06.2016 
-    versiondi=1.2.0 +    versiondi=1.6.0 
-    vdatedi=26.01.2015+    vdatedi=21.06.2016
     fnamedt=datetime.cls     fnamedt=datetime.cls
     fnamedi=dateinterval.cls     fnamedi=dateinterval.cls
Line 12: Line 12:
 {{keywords>​vba,​class,​datetime,​dateinterval}} {{keywords>​vba,​class,​datetime,​dateinterval}}
 ====== [VBA] DateTime + DateInterval ====== ====== [VBA] DateTime + DateInterval ======
- 
 Die 2 Klassen [[.:​datetime:​index]] und [[.:​dateinterval:​index]] ergänzen sich gegenseitig. Die 2 Klassen [[.:​datetime:​index]] und [[.:​dateinterval:​index]] 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. 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.
  
-{{section>:snippets#​vba_import_modul&​noheader&​firstseconly}} +<WRAP left round download 50%> 
-===== DateTime ===== +><fc #​808080>//​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.//</​fc>​ 
-==Version %%versiondt%% %%vdatedt%%== +>{{popup>:vba:​vba_importfile.png|Bild zum Import}}
-[[.:​datetime:​index|DateTime]] repräsentiert ein Datum inkl. Zeit.+
  
 {{%%fnamedt%%|Download %%fnamedt%% (V-%%versiondt%%)}} {{%%fnamedt%%|Download %%fnamedt%% (V-%%versiondt%%)}}
 +\\ {{%%fnamedi%%|Download %%fnamedi%% (V-%%versiondi%%)}}
 +</​WRAP>​
 +<WRAP clear></​WRAP>​
 +
 +===== DateTime =====
 +==Version %%versiondt%% %%vdatedt%%==
 +[[.:​datetime:​index|DateTime]] repräsentiert ein Datum inkl. Zeit. Dazu diverse Funktionen, die man sich für eine Datumsklasse wünscht.
  
 ===== DateInterval ===== ===== DateInterval =====
Line 27: Line 32:
 [[.:​dateinterval:​index|DateInterval]] stellt ein Abstand zwischen 2 Datums dar. Als [[.:​dateinterval:​index|DateInterval]] stellt ein Abstand zwischen 2 Datums dar. Als
 Grundlage dient [[http://​en.wikipedia.org/​wiki/​Iso8601#​Durations|ISO8601 Duration]] Grundlage dient [[http://​en.wikipedia.org/​wiki/​Iso8601#​Durations|ISO8601 Duration]]
- 
-{{%%fnamedi%%|Download %%fnamedi%% (V-%%versiondi%%)}} 
  
 ===== Beispiele ===== ===== Beispiele =====
Line 42: Line 45:
 Dim dt2 As DateTime: ​   Set dt2 = DateTime.serial(2014,​ 12, 4, 14, 30, 15) Dim dt2 As DateTime: ​   Set dt2 = DateTime.serial(2014,​ 12, 4, 14, 30, 15)
  
-'Dierenz ​berechnen+'Differenz ​berechnen ​und formatiert ausgeben
 Dim di As DateInterval:​ Set di = dt1.diff(dt2) 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") Debug.Print di.format("​E\s ge\ht \noc\h Y Ja\h\re, M \Mo\nate u\n\d D Tage")
 +--> 'Es geht noch 0 Jahre, 3 Monate und 12 Tage
  
-'Ausgabe: +'Dasselbe mit der format2() Funktion (gibt es auch für DateTime) 
-'Es geht noch 0 Jahre, 3 Monate und 12 Tage+Debug.Print di.format2("​Es geht noch {$Y} Jahre, {$M} Monate und {$D} Tage"​) 
 +--> ​Es geht noch 0 Jahre, 3 Monate und 12 Tage
 </​code>​ </​code>​
 +
 +DateTime aus einem Datumsstring erstellen
 +<code vb>?​DateTime("​20151101",​ "​YYYYMMDD"​).dateValue
 +01.11.2015 </​code>​
  
 Ein kleines Einzeilerbeispiel,​ bei dem 3 Moante und 4 Tage zu einem defniertem Datum hinzugezählt wird Ein kleines Einzeilerbeispiel,​ bei dem 3 Moante und 4 Tage zu einem defniertem Datum hinzugezählt wird
-<code vb>?​DateTime(#​8/​25/​2014#​).add("​P3M4D"​).format("​DD.MM.YYYY"​)+<code vb>?​DateTime(#​8/​25/​2014#​).add("​P3M4D"​).dateValue
 29.11.2014</​code>​ 29.11.2014</​code>​
  
 Und dasselbe über die Serial-Methode des [[vba:​classes:​date:​dateinterval:​index]] Und dasselbe über die Serial-Methode des [[vba:​classes:​date:​dateinterval:​index]]
-<code vb>?​DateTime(#​8/​25/​2014#​).add(DateInterval.serial(,​3,​4)).format("DD.MM.YYYY")+<code vb>?​DateTime(#​8/​25/​2014#​).add(DateInterval.serial(,​3,​4)).dateValue 
 +29.11.2014</​code>​ 
 + 
 +Und nochmals dasselbe, mit der addSingleValue() Methode des DateTime Objektes 
 +<code vb>?​DateTime(#​8/​25/​2014#​).addSingleValue("M", 3).addSingleValue("D", 4).dateValue
 29.11.2014</​code>​ 29.11.2014</​code>​
  
Line 63: Line 74:
 <code vb>?​DateTime(#​8/​25/​2014#​).add("​P44D"​).format("​DD.MM.YYYY"​) <code vb>?​DateTime(#​8/​25/​2014#​).add("​P44D"​).format("​DD.MM.YYYY"​)
 08.10.2014</​code>​ 08.10.2014</​code>​
 +
 +Mit Kalenderwochen arbeiten
 +<code vb>'​Erster Tag einer Kalenderwoche und letzter Tag einer Kalenderwoche
 +?​DateTime("​13-2015","​WW-YYYY"​).dateValue
 +23.03.2015 ​
 +?​DateTime("​132015","​WWYYYY"​).add("​P6D"​).dateValue
 +29.03.2015 ​
 +
 +' Und dasseleb mit der addSIngleVaue Methode
 +?​DateTime("​132015","​WWYYYY"​).addSingleValue("​D",​ 6).dateValue
 +29.03.2015</​code>​
vba/classes/date/index.1422285474.txt.gz · Last modified: 26.01.2015 16:17:54 by yaslaw