Referenz - ISDATE
Syntax: ISDATE (Datumsstring)
Typ: Funktion
Kategorie: Datum und Zeit
ISDATE überprüft, ob ein String einem korrekten Datumsformat entspricht.
Anmerkung:
Um diese Funktion nutzen zu können, muss die Datei datetime.bi in Ihren Quellcode eingebunden werden, z.B. mit INCLUDE. Alternativ können Sie auch die Datei vbcompat.bi einbinden, da dadurch auch automatisch datetime.bi eingebunden wird.
'Datumsstring' ist ein STRING, der analysiert werden soll. Der Rückgabewert ist entweder gleich -1, wenn der String ein Datum enthält, oder gleich 0, wenn dies nicht der Fall ist.
Damit FreeBASIC einen String als Datum anerkennt, muss er im FB-Datumsformat gegeben sein. Die einzelnen Segmente (Tag, Monat, Jahr) dürfen durch die Zeichen Minus (-), Slash (/) und Punkt (.) voneinander abgetrennt werden. Alle drei Segmente müssen angegeben werden, ansonsten ist das Ergebnis dieser Funktion gleich 0. Werden in einem String zwei verschiedene Trennzeichen benutzt, so wird ebenfalls kein Datum erkannt. Vor und nach einem Trennzeichen sowie vor und nach dem Datum an sich dürfen beliebig viele Leerzeichen eingefügt werden; jedoch müssen die Ziffern eines Datumssegments direkt beisammen stehen und dürfen nicht durch Leerzeichen getrennt werden. Enthält ein korrekt formatierter Datumsstring neben dem Datum und Leerzeichen noch andere Zeichen, so wird 0 ausgegeben. ISDATE arbeitet auch mit ZSTRINGs und WSTRINGs.
Achtung: Je nach Benutzereinstellung bzw. Betriebssystem variiert die Reihenfolge der Segmente (z. B. dd.mm.yy oder mm.dd.yy).
Beispiel 1:
#Include "vbcompat.bi"
DIM s AS String, d AS Integer
DO
Print
Print "Bitte geben Sie ein Datum ein: "
Line Input s
If s = "" Then Exit Do
If IsDate( s ) Then
d = DateValue( s )
Print "Jahr : "; Year ( d )
Print "Monat : "; Month( d )
Print "Tag : "; Day ( d )
Else
Print "'"; s; "' ist kein zulaessiges Datum!"
End If
Loop
Beispiel 2:
#Include "vbcompat.bi"
#Define FB_QM Chr(34) ' Das Anführungszeichen (")
Data "01.01.01"
Data "01/01/01"
Data "01-01-01"
Data "01,01,01"
Data "01.01/01"
Data "01.01"
Data " 01 . 01 . 01 "
Data "01. 01. 0 1"
Data "01.01.01 a"
Data "End"
Dim s As String
Do
Read s
If s = "End" Then Exit Do
Color 0
PRINT FB_QM; s; FB_QM; Tab(40)
If IsDate(s) Then
Color 10
PRINT "ist ein gueltiges Datum"
Else
Color 12
PRINT "ist kein gueltiges Datum"
End If
Loop
Sleep
Ausgabe:
"01.01.01" ist ein gueltiges Datum
"01/01/01" ist ein gueltiges Datum
"01-01-01" ist ein gueltiges Datum
"01,01,01" ist kein gueltiges Datum
"01.01/01" ist kein gueltiges Datum
"01.01" ist kein gueltiges Datum
" 01 . 01 . 01 " ist ein gueltiges Datum
"01. 01. 0 1" ist kein gueltiges Datum
"01.01.01 1" ist kein gueltiges Datum
Sie können in dieses Beispiel gerne weitere Test-Daten einbauen: Fügen Sie einfach eine weitere DATA-Zeile vor der Zeile DATA "End" ein.
Unterschiede zu QB: neu in FreeBASIC
Unterschiede zu früheren Versionen von FreeBASIC: existiert seit FreeBASIC v0.17
Siehe auch:
NOW, DATESERIAL, DATEVALUE, YEAR, MONTH, DAY, WEEKDAY, MONTHNAME, WEEKDAYNAME, DATEDIFF, DATEPART, DATEADD, FORMAT, Serial Numbers, Datum und Zeit
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|