----- Original Message -----
Sent: Tuesday, April 16, 2002 2:58
PM
Subject: [aspdebeginners] Re:
[aspdebeginners] Re: [aspdebeginners] Datum auf G�ltigkeit testen?
Ok ist nicht lesbar. Hier nochmal das
Original (und ausnahmsweise HTML).
Wenn Du den Weg gehen m�chtest, dann kannst Du ja
mal das angeh�ngte Script ausprobieren.
SCHRITT 1: pack das Ganze in
eine TEST.VBS Datei und lass es laufen. Schau, ob Dir die Funktionalit�t so
passt. Ggf. anpassen.
SCHRITT 2: passt alles, dann die drei
Funktionen in Dein ASP packen. Die Testaufrufe mit msgbox weglassen. Nicht
vergessen am Ende der Funktion ToDate die Kommentare f�r den passenden Block
(Access oder SQL-Server) richtig setzen.
Aufruf w�re dann etwa
so
sqldatum =
ToDate(request("formdatum"))
Und die Variable sqldatum in den
Abfragestring oder Update/Insert-String einsetzen.
Option Explicit
dim
a
a = "2.3.2000"
msgbox a & vbcrlf
& vbcrlf & ToDate(a)
a = "22.3.2000"
msgbox a &
vbcrlf & vbcrlf & ToDate(a)
a = "2.33.2000"
msgbox a
& vbcrlf & vbcrlf & ToDate(a)
a = "2, 3
.2000"
msgbox a & vbcrlf & vbcrlf & ToDate(a)
a =
"13. 13. 2000"
msgbox a & vbcrlf & vbcrlf &
ToDate(a)
a = "13. 1"
msgbox a & vbcrlf & vbcrlf &
ToDate(a)
a = "13. April"
msgbox a & vbcrlf & vbcrlf
& ToDate(a)
a = "34 Dezemper"
msgbox a & vbcrlf &
vbcrlf & ToDate(a)
a = "33/"
msgbox a & vbcrlf &
vbcrlf & ToDate(a)
a = "4"
msgbox a & vbcrlf &
vbcrlf & ToDate(a)
a = "3. Idiot"
msgbox a & vbcrlf
& vbcrlf & ToDate(a)
a = "Letzder"
msgbox a &
vbcrlf & vbcrlf & ToDate(a)
a = " Morgen"
msgbox
a & vbcrlf & vbcrlf & ToDate(a)
a =
"geSCHDern "
msgbox a & vbcrlf & vbcrlf &
ToDate(a)
a = "�bermogen"
msgbox a & vbcrlf & vbcrlf
& ToDate(a)
a = "Moin"
msgbox a & vbcrlf & vbcrlf
& ToDate(a)
a = "Hoppala"
msgbox a & vbcrlf &
vbcrlf & ToDate(a)
Function ToDate(sString)
Dim i,
a, sTemp, sTag, sMonat, sJahr
' -- alle m�glichen
Trennzeichen raus
sString =
replace(replace(replace(replace(replace(sString, ".", " "), "/", " "), ",", "
"), " ", " ")," ", " ")
' -- Defaults
vorbelegen
sJahr = Year(Now)
sMonat =
Month(Now)
sTag = Day(Now)
' -- jetzt Datum
ermitteln
Select Case Left(Lcase(Trim(sString)), 3)
Case
"heu", "jet" ' -- heute
' nix machen, ist schon
passend vorbelegt
Case "mor", "moi" ' --
morgen
sTemp = Now + 1
sJahr =
Year(sTemp)
sMonat = Month(sTemp)
sTag = Day(sTemp)
Case "ges" ' --
gestern
sTemp = Now - 1
sJahr =
Year(sTemp)
sMonat = Month(sTemp)
sTag = Day(sTemp)
Case "�be" ' --
�bermorgen
sTemp = Now + 2
sJahr =
Year(sTemp)
sMonat = Month(sTemp)
sTag = Day(sTemp)
Case "ers" ' --
Monatserster
sTemp = DateSerial(Year(Now), Month(Now),
1)
sJahr = Year(sTemp)
sMonat =
Month(sTemp)
sTag = Day(sTemp)
Case
"let" ' -- Monatsletzter
sTemp =
DateSerial(Year(Now), Month(Now) + 1, 1) - 1
sJahr =
Year(sTemp)
sMonat = Month(sTemp)
sTag = Day(sTemp)
Case Else ' -- der
Normalfall
a = split(sString, " ")
For i = 0 to
UBound(a)
Select Case
i
Case
0
sTag =
Val(a(i))
if sTag = 0 Then sTag
= Day(Now)
Case
1
sMonat =
Val(a(i))
If sMonat = 0 Then
sMonat = GetMonat(a(i))
Case
2
sJahr =
Val(a(i))
If sJahr = 0 Then
sJahr = Year(Now)
End
Select
Next
End Select
' -- Variante A ein VBS Datum
ToDate = DateSerial(sJahr, sMonat, sTag)
' -- Variante B ein Access (oder
auch Excel, etc.) Datum generieren
' sTemp = DateSerial(sJahr,
sMonat, sTag)
' ToDate = "DateSerial(" & Year(sTemp) & ", "
& Month(sTemp) & ", " & Day(sTemp) & ")"
' --
Variante C ein SQL-Server Datum bauen
' sTemp = DateSerial(sJahr,
sMonat, sTag)
' ToDate = "Convert(datetime, '" & Day(sTemp)
& "." & Month(sTemp) & "." & Year(sTemp) & "',
104)"
End Function
'
' --- String
Funktionen
'
Function Val(sString)
Dim i, a, sTemp
If IsNumeric(sString) Then
Val = CInt(sString)
Else
sTemp = "0"
For i
= 1 to Len(sString)
a = mid(sString, i,
1)
If IsNumeric(a) Then sTemp = sTemp &
a
Next
Val = CInt(sTemp)
End If
End Function
Function GetMonat(sString)
Select Case Left(Lcase(trim(sString)), 3)
Case
"jan"
GetMonat = 1
Case
"feb"
GetMonat = 2
Case "m�r",
"mar"
GetMonat = 3
Case
"apr"
GetMonat = 4
Case "mai",
"may"
GetMonat = 5
Case
"jun"
GetMonat = 6
Case
"jul"
GetMonat = 7
Case
"aug"
GetMonat = 8
Case
"sep"
GetMonat = 9
Case "okt",
"oct"
GetMonat = 10
Case
"nov"
GetMonat = 11
Case "dez",
"dec"
GetMonat = 12
Case
Else
GetMonat = Month(now)
End Select
End
Function
--
Viele Gr��e
Hubert Daubmeier
| Oft Gefragtes: http://www.aspgerman.com/aspgerman/faq/ |
[aspdebeginners] als [EMAIL PROTECTED] subscribed |
http://www.aspgerman.com/archiv/aspdebeginners/ = Listenarchiv | Sie knnen
sich unter folgender URL an- und abmelden: |
http://www.aspgerman.com/aspgerman/listen/anmelden/aspdebeginners.asp
| Oft Gefragtes: http://www.aspgerman.com/aspgerman/faq/
| [aspdebeginners] als