Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Referenz - ISDATE

Referenz-Navigation

 

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 BefehlsreferenzeintragINCLUDE. Alternativ können Sie auch die Datei vbcompat.bi einbinden, da dadurch auch automatisch datetime.bi eingebunden wird.

'Datumsstring' ist ein BefehlsreferenzeintragSTRING, 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 BefehlsreferenzeintragZSTRINGs und BefehlsreferenzeintragWSTRINGs.

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:
BefehlsreferenzeintragNOW, BefehlsreferenzeintragDATESERIAL, BefehlsreferenzeintragDATEVALUE, BefehlsreferenzeintragYEAR, BefehlsreferenzeintragMONTH, BefehlsreferenzeintragDAY, BefehlsreferenzeintragWEEKDAY, BefehlsreferenzeintragMONTHNAME, BefehlsreferenzeintragWEEKDAYNAME, BefehlsreferenzeintragDATEDIFF, BefehlsreferenzeintragDATEPART, BefehlsreferenzeintragDATEADD, BefehlsreferenzeintragFORMAT, BefehlsreferenzeintragSerial Numbers, BefehlsreferenzeintragDatum und Zeit


Zusätzliche Informationen und Funktionen
  • Der Referenzeintrag wurde am 30.07.2007 von Redakteurnemored angelegt.
  • Die aktuellste Version wurde am 27.12.2012 von Redakteurnemored gespeichert.
  Versionen Versionen