Benutzer mit den meisten Antworten
VB2010SP1 Datevalue + Timevalue liefert unbrauchbares Ergebnis

Frage
-
Moin zusammen,
ich verarbeite gerade ein Datum aus einem Monthview und eine Zeitangabe aus einer Textbox wie folgt:
Debug.print( DateValue(MonthView1.SelectionRange.Start)+ TimeValue(tboxAZVon.Text) )
23.09.201106:50:00ich prüfe danach in der weiterführenden Funtion ob es sich um einen gültigen Datumswert handelt
Debug.print( IsDate("23.09.201106:50:00") )
False
erwartet hätte ich dieses Ergebnis
Debug.print( IsDate("23.09.2011 06:50:00") )
Truein vorhergehenden Versionen VB war das auch kein Problem. Sind doch beides Datevalues, sollte doch eigentlich was sinnvolles zu erwarten sein.
Gruß Ingo
Antworten
-
Für Leute die das Interessiert, hier eine Lösung wie man es Richtig macht.
Friend Class DateAndTime
Friend Overloads Shared Function Join(D As Date, T As TimeSpan) As DateTime
Return D.Date.Add(T)
End Function
Friend Overloads Shared Function Join(D As Date, T As String) As DateTime
Dim Zeit As TimeSpan = TimeSpan.Parse(T)
Return Join(D, Zeit)
End Function
Friend Overloads Shared Function Join(D1 As Date, D2 As Date) As DateTime
Dim Zeit As TimeSpan = D2.TimeOfDay
Return Join(D1, Zeit)
End Function
End Class
Aufrufen kann man das ganze dann z.B. mit
MsgBox(DateAndTime.Join(Date.Today, Date.Now.TimeOfDay))
MsgBox(DateAndTime.Join(Date.Today, "10:20:12"))
Dim z As TimeSpan = TimeSpan.Parse("10:12:13")
Dim d2 As Date = Date.MinValue.Add(z)
MsgBox(DateAndTime.Join(Date.Today, d2))
- Als Antwort markiert BIngo2065 Montag, 26. September 2011 15:48
Alle Antworten
-
Für Leute die das Interessiert, hier eine Lösung wie man es Richtig macht.
Friend Class DateAndTime
Friend Overloads Shared Function Join(D As Date, T As TimeSpan) As DateTime
Return D.Date.Add(T)
End Function
Friend Overloads Shared Function Join(D As Date, T As String) As DateTime
Dim Zeit As TimeSpan = TimeSpan.Parse(T)
Return Join(D, Zeit)
End Function
Friend Overloads Shared Function Join(D1 As Date, D2 As Date) As DateTime
Dim Zeit As TimeSpan = D2.TimeOfDay
Return Join(D1, Zeit)
End Function
End Class
Aufrufen kann man das ganze dann z.B. mit
MsgBox(DateAndTime.Join(Date.Today, Date.Now.TimeOfDay))
MsgBox(DateAndTime.Join(Date.Today, "10:20:12"))
Dim z As TimeSpan = TimeSpan.Parse("10:12:13")
Dim d2 As Date = Date.MinValue.Add(z)
MsgBox(DateAndTime.Join(Date.Today, d2))
- Als Antwort markiert BIngo2065 Montag, 26. September 2011 15:48