This shows you the differences between two versions of the page.
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> |