====== Definitionen zu DateIterator ======
===== Attribute =====
Die Klasse hat einige spezielle Attribute. Sie muss darum über den Modulbrowser->Import importiert werden, damit die Attribute aktiv sind.
== Attribute VB_PredeclaredId = True ==
Diese Attribut auf Klassenebe erlaubt es, direkt auf Funktion der Klasse zuzugreiffen
==Attribute instance.VB_UserMemId = 0==
Die Methode instance() besitzt dieses Attribut. Damit ist instance() die Standartfunktion von [[.:index]]
===== Methoden=====
*[[#construct|construct()]]
*[[#instance|instance()]]
*[[#instancefromdatediff|instanceFromDateDiff()]]
==== CONSTRUCT() ====
Public Function instance(ByVal iIntervalSpec As Variant) As DateInterval
Initialisiert eine [[.:index|DateIteratorInstanz]] mit einer [[#iIntervalSpec|IntervalSpec]] oder Anzahl Tage
=== Parameters ===
== iIntervalSpec ==
Eine %%IntervalSpec%% nach [[http://en.wikipedia.org/wiki/Iso8601#Durations|ISO8601 Duration]]
oder eine Zahl. Das währen dann Anzahlt Tage
=== Return ===
Eine Referenz auf die aktuelle [[.:index]]-Instanz
=== Beispiel ===
Dim di As New DateInterval
di.construct ("P3DT5H")
==== INSTANCE()====
Public Function instance(ByVal iIntervalSpec As Variant) As DateInterval
Erstellt eine neue Instanz eines [[.:index|DateIterators]] aus einer [[#iIntervalSpec|IntervalSpec]] oder aus Anzahl Tage
Diese Funktion hat die Attributzeile 'Attribute item.VB_UserMemId = 0'. Ergo ist es die Standartfunktion der Klasse
=== Parameters ===
== iIntervalSpec ==
Eine %%IntervalSpec%% nach [[http://en.wikipedia.org/wiki/Iso8601#Durations|ISO8601 Duration]]
oder eine Zahl. Das währen dann Anzahlt Tage
=== Return ===
Eine neue Instanz der [[.:index]]-Klasse
=== Beispiele ===
Dim di As DateInterval
'Einmal über Funktionsaufruf mit einer IntervalSpec
Set di = DateInterval.instance("P3D")
'Und dasselbe mit Anzahl Tage. Da instance() die Standartfunktion ist, muss sie nicht explizit angegeben werden
Set di = DateInterval(3)
==== INSTANCEFROMDATEDIFF() ====
Erstellt eine Instance von einem [[.:index|DateIterar]] aus der Differenz von 2 Datum
Public Function instanceFromDateDiff( _
Optional ByRef iDate1 As Variant = Null, _
Optional ByRef iDate2 As Variant = Null, _
Optional ByVal iAbsolute As Boolean = False _
) As DateInterval
=== Parameters ===
== iDate1 ==
Das erste Datum für die Differenz. Es kann sich dabei um ein VBA-Datum, ein Datumsstring oder ein [[..:datetime:index|DateTime-Objekt]] handeln
== iDate2 ==
Das zweite Datum für die Differenz. Es kann sich dabei um ein VBA-Datum, ein Datumsstring oder ein [[..:datetime:index|DateTime-Objekt]] handeln
== iAbsolute ==
Ein Flag mit dem man das Vorzeichen unterdrücken kann. Egal ob iDate1 oder iDate2 grösser ist, es wird immer eine positive DIfferenz sofern iAbsolute auf True steht.
=== Return ===
Eine neue Instanz der [[.:index]]-Klasse
=== Beispiel ===
Dim di As DateInterval
Set di = DateInterval.instanceFromDateDiff(#8/1/2014 8:15:00 AM#, #9/1/2014 9:30:15 AM#)
==== FORMAT() ====
Formatiert ein Interval zu einem String
Public Function format(ByVal iFormat As String) As String
=== Parameters ===
== iFormat ==
Das Ausgabeformat
^ Abk. ^ Beschreibung ^
| m | Monat ohne führende Null (1-12) |
| mm | Monat mit führende Null (01-12) |
| mx | Total Anzahl Monate ohne führende Null |
| d | Tag ohne führende Null (1-31) |
| dd | Tag mit führende Null (01-31) |
| dx | Total Anzahl Tage ohne führende Null |
| y | Einstelliges Jahr. Analog zu d wird es glösser geschrieben, wenn es mehr Zeichen hat |
| yy | Zweistelliges Jahr |
| yyyy | Vierstelliges Jahr |
| h | Stunden ohne führende Null(0-24) |
| hh | Stunden mit führende Null(00-24) |
| hx | Total Anzahl Stunden ohne führende Null |
| n | Minuten ohne führende Null(0-59) |
| nn | Minuten mit führende Null(00-59) |
| nx | Total Anzahl Minuten ohne führende Null |
| s | Sekunden ohne führende Null(0-59) |
| ss | Sekunden mit führende Null(00-59) |
| sx | Total Anzahl Tage ohne führende Null |
| r | Bei Muinus ein - |
| R | Bei Minus ein -, bei Plus ein + |
Mit \ kann ein Format maskiert werden. damit es nichtgeparst wird: m wird als Monat ausgegeben. \m wird zu "m"
=== Return ===
Ein formatierter String
=== Beispiel ===
Dim di As DateInterval
Set di = DateInterval("P13Y4M1DT15H")
Debug.Print di.format("\Y;: y, \M: m") '-> "Y: 13, M: 4"
===== Properties =====
***year** Die Jahre des Intervals
***month**
***day**
***hour**
***minute**
***second**
***sign** Das Vorzeichen des Interval. -1 oder 1
***years** Anzahl Jahre insgesamt. Wird nur bei %%DateDIff%%() abgefüllt. Entspricht dem VBA.%%DateDiff%%('y', date1, date2)
***months** Dito für Monate
***days** Dito für Tage
***hours** Dito für Stunden
***minutes** Dito für Minuten
***seconds** Dito für Sekunden
***intervalSpec** Gibt den Interval als [[#intervalspec|IntervalSpec]] zurück: P[n]Y[n]M[n]DT[n]H[n]M[n]S
***intervalSpec2** [[#intervalspec|IntervalSpec]]in der Schreibweise: PYYYYMMDDThhmmss
***intervalSpec3** und P[YYYY]-[MM]-[DD]T[hh]:[mm]:[ss]