User Tools

Site Tools


vba:classes:date:dateinterval:index

This is an old revision of the document!


[VBA] DateInterval

Version 1.2.0 26.01.2015

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

Siehe auch [VBA] DateTime

Download dateinterval.cls (V-1.2.0)

  • Definitionen zu DateIterator
  • DateInterval Beispiele
  • Code des DateInterval
Loading ...

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 [VBA] DateInterval

Methoden

CONSTRUCT()

Public Function instance(ByVal iIntervalSpec As Variant) As DateInterval

Initialisiert eine DateIteratorInstanz mit einer IntervalSpec oder Anzahl Tage

Parameters

iIntervalSpec

Eine IntervalSpec nach ISO8601 Duration oder eine Zahl. Das währen dann Anzahlt Tage

Return

Eine Referenz auf die aktuelle [VBA] DateInterval-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 DateIterators aus einer 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 ISO8601 Duration oder eine Zahl. Das währen dann Anzahlt Tage

Return

Eine neue Instanz der [VBA] DateInterval-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 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-Objekt handeln

iDate2

Das zweite Datum für die Differenz. Es kann sich dabei um ein VBA-Datum, ein Datumsstring oder ein 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 [VBA] DateInterval-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 zurück: P[n]Y[n]M[n]DT[n]H[n]M[n]S
  • intervalSpec2 IntervalSpecin der Schreibweise: PYYYYMMDDThhmmss
  • intervalSpec3 und P[YYYY]-[MM]-[DD]T[hh]:[mm]:[ss]

vba/classes/date/dateinterval/index.1422280686.txt.gz · Last modified: 26.01.2015 14:58:06 by yaslaw