User Tools

Site Tools


vba:classes:date:datetime: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:datetime:index [28.06.2016 11:52:48]
yaslaw
vba:classes:date:datetime:index [04.07.2016 10:46:14] (current)
yaslaw
Line 1: Line 1:
 {{keywords>​vba,​datetime}} {{keywords>​vba,​datetime}}
 <​const>​ <​const>​
-    version=1.9.1 +    version=1.10.0 
-    vdate=28.06.2016+    vdate=04.07.2016
     fname=datetime.cls     fname=datetime.cls
     ns=%NAMESPACE%     ns=%NAMESPACE%
Line 39: Line 39:
 ===== Definitionen ===== ===== Definitionen =====
 > Für die Ausgabe der Resultate verwendete ich die Funktion [[:​vba:​functions:​print_r:​|print_r() bzw. d()]]. > Für die Ausgabe der Resultate verwendete ich die Funktion [[:​vba:​functions:​print_r:​|print_r() bzw. d()]].
 +
 ==== Creatoren ==== ==== Creatoren ====
 Es gibt verschiedene Möglichkeiten ein DateTime zu initialisieren Es gibt verschiedene Möglichkeiten ein DateTime zu initialisieren
Line 59: Line 60:
 | [[#​interval]] | Array | Erstellt eine Serie von Daten anhand eines Intervals | | [[#​interval]] | Array | Erstellt eine Serie von Daten anhand eines Intervals |
 | [[#​setProperty]] |%%DateTime%% | Setzt ein Property ung gibt ein DateTime zurück | | [[#​setProperty]] |%%DateTime%% | Setzt ein Property ung gibt ein DateTime zurück |
 +| [[#​toString]] | String | Gibt das Objekt als String zurück |
  
 ==== Properties ==== ==== Properties ====
Line 125: Line 127:
 ) )
 )</​code>​ )</​code>​
 +
 +==== Enumeratoren ====
 +Es gibt verscheidene öffentliche Enumeratoren.
 +
 +=== dtParams ===
 +dtParams steuert das Verhalten der Klasse. Die verschiedenen Paramter sind komulierbar,​ wobei nicht alle Kombinationen Sinn ergeben
 +<code vb>​Public Enum dtParams
 +    dtNone = 0
 +    '​Parameters zur Behandlung des InputStrings
 +    dtInFormatIgnoreCase = 2 ^ 0        '​Gross-Kleinschreibung bei Trennzeichen ignorieren
 +    dtInFormatFormat2 = 2 ^ 1           '​Beim Übergabewert iFormat handelt sich um ein Format im Stil von {$DD}.{$MM}
 +    '​Paramter zur SQL-Ausgabe
 +    dtOutSqlFormatUs = 2 ^ 5            'SQL Format US
 +    dtOutSqlFormatIso8601 = 2 ^ 6       '​SQL Format EU (ISO8601)
 +    dtOutSqlFormatManual = 2 ^ 7        'Das Format wird vom User vorgegeben (muss über SqlDateFormatString oder über setParameter(dtpSqlDateFormatString,​ ...) gesetzt werden)
 +End Enum</​code>​
 +
 +=== dtSqlFormats ===
 +Paramter um das SQL-Format zu setzen. Es sind alle auch in dtParams vorhanden.
 +<code vb>​Public Enum dtSqlFormats
 +    dtsqlus = dtOutSqlFormatUs ​             'US: #​MM/​DD/​YYYY#​
 +    dtSqlIso8601 = dtOutSqlFormatIso8601 ​   'EU, ISO-Norm: #​YYYY-MM-DD# ​    ​https://​de.wikipedia.org/​wiki/​ISO_8601
 +    dtSqlManual = dtOutSqlFormatManual ​     'User Spezialformat
 +    dtSqlDefault = dtsqlus ​                 '​Standard definieren
 +End Enum</​code>​
 +
 +=== dtReturnTypes ===
 +Bei gewissen Methoden kann man das Rückgabetype auswählen
 +<code vb>​Public Enum dtReturnTypes
 +    dtDateTime = 2 ^ 15     '​dtOutDateTime
 +    dtTimestamp = 2 ^ 16    '​dtOutTimestamp
 +    dtRetDefault = dtDateTime
 +End Enum</​code>​
 +
 +=== dtErrorNumbers ===
 +Mögliche Errors. Normalerweise programmiere ich dazu Public Const. Das geht aber in eine Class nicht.
 +<code vb>​Public Enum dtErrorNumbers
 +    dtErrInvalidFormat = vbObjectError + 1      'Der String passt nicht mit dem Format überein
 +    dtErrNotParseble = vbObjectError + 2        'Das Format ist nicht parsbar
 +End Enum</​code>​
 +
 +=== dtProperties ===
 +Attribute, die gesetzt werden können. Wird für [[#​setProperty]] genutzt
 +<code vb>​Public Enum dtProperties
 +    dtpTimestamp
 +    dtpDateValue
 +    dtpTimeValue
 +    dtpYear
 +    dtpMonth
 +    dtpDay
 +    dtpHour
 +    dtpMinute
 +    dtpSecond
 +    dtpNanoSecond
 +    dtpMicroSecond
 +    dtpMilliSecond
 +    dtpFirstWeekOfYear
 +    dtpFirstDayOfWeek
 +    dtpPatternDelemiter
 +    dtpDayOfWeek
 +    dtpQuarter
 +    dtpWeek
 +    dtpDayOfYear
 +    dtpSqlTimeStamp
 +    dtpSqlDate
 +    dtpSqlTime
 +    dtpSqlFormat
 +    dtpReturnType
 +    dtpSqlDateFormatString
 +End Enum</​code>​
  
 ===== Creatoren ===== ===== Creatoren =====
Line 300: Line 372:
 Dieser sagt aus, ob das Objekt selber verändert und zurückgegeben wird oder ob das Resultat eine neue DateTime-Instanz ist Dieser sagt aus, ob das Objekt selber verändert und zurückgegeben wird oder ob das Resultat eine neue DateTime-Instanz ist
  
-  * FALSE <​del>​(Default)</​del>​((Seit Version 1.8.0 nicht mehr)): Das Objekt selber wird veränder und eine Referenz wird zurückgegeben +  * FALSE <​del>​(Default)</​del>​((Seit Version 1.8.0 nicht mehr)): Der Rückgabewert ist ein Clone an dem die Veränderung vorgenommen wurde
-  * TRUE (Default): Der Rückgabewert ist ein Clone an dem die Veränderung vorgenommen wurde   ​+  * TRUE (Default): Das Objekt selber wird verändert und eine Referenz wird zurückgegeben.
  
 == Beispiel == == Beispiel ==
Line 314: Line 386:
     'Die Veränderung nur als neues Objekt zurückgeben     'Die Veränderung nur als neues Objekt zurückgeben
     Set dt1 = DateTime(#​6/​1/​2015#​)     Set dt1 = DateTime(#​6/​1/​2015#​)
-    Set dt2 = dt1.minus("​P1M", ​True)+    Set dt2 = dt1.minus("​P1M", ​False)
     print_r dt1.dateValue ​      '​->​ <​Date>​ 01.06.2015     print_r dt1.dateValue ​      '​->​ <​Date>​ 01.06.2015
     print_r dt2.dateValue ​      '​->​ <​Date>​ 01.05.2015     print_r dt2.dateValue ​      '​->​ <​Date>​ 01.05.2015
Line 617: Line 689:
 <​String>​ '​-P1Y25D'</​code>​ <​String>​ '​-P1Y25D'</​code>​
  
-==== setProperty ==== +==== setProperty() ==== 
-Mit dieser Methode kann ein Property angepast werden und das Resultat gleich weiterverarbeiten+Mit dieser Methode kann ein Property angepast werden und das Resultat gleich weiterverarbeiten ​werden.
 <code vb>'/​** <code vb>'/​**
 ' * Setzt ein Property ung gibt ein DateTime zurück ' * Setzt ein Property ung gibt ein DateTime zurück
Line 641: Line 713:
 ? DateTime().setProperty(dtpSqlFormat,​ dtSqlFormats.dtSqlIso8601).setProperty(dtpDay,​1).sqlDate ? DateTime().setProperty(dtpSqlFormat,​ dtSqlFormats.dtSqlIso8601).setProperty(dtpDay,​1).sqlDate
 #​2016-06-01#</​code>​ #​2016-06-01#</​code>​
 +
 +==== toString() ====
 +Gibt den Timestampals String zurück. Das Format kann mitgegen werden. Ansonsten wird das mit dem Format ​ [[#​sqlTimeStamp]] formatiert.
 +<​code>'/​**
 +' * Gibt ein String-Wert eines Objektes zurück
 +' * @return String
 +' */
 +Public Property Get toString(Optional ByVal format As String) As String</​code>​
 +
 +== Beispiele ==
 +<code vb>?​DateTime().toString()
 +#07/04/2016 10:43:24#
 +
 +?​DateTime().toString("​DD\.MM\.YYYY"​)
 +04.07.2016</​code>​
  
 ===== Code ===== ===== Code =====
 <source '​%%fpath%%/​%%fname%%'​ vb> <source '​%%fpath%%/​%%fname%%'​ vb>
vba/classes/date/datetime/index.1467107568.txt.gz · Last modified: 28.06.2016 11:52:48 by yaslaw