Datum Zeit minus Zeit zurückrechnen

Runner2004

Grünschnabel
Guten Morgen zusammen,

ich weiß, dass das Thema zu Hauf im Netz zu finden ist, aber ich habe für meine Anwendung nichts brauchbares gefunden.
Mit dem Funktionen DateDiff, etc. bin ich nicht weiter gekommen.

Folgender Anwendungsfall:

Der Benutzer gibt ein Datum (tt.mm.jjjj) und eine Uhrzeit (hh:mm) in eine vorgebene Maske ein. Datum und Uhrzeit müssen noch zusammengesetzt werden, d.h. tt +mm+jjjj hh+mm.
Aus einem Rezept wird eine Zeit geladen z.B. 15:15 (hh:mm).

Der Rezeptwert (hh:mm) muss von der Handeingabe (tt.mm.jjjj hh:mm) abgezogen werden . Es gelingt mir nicht, das exakte Datum inkl. Uhrzeit zu erzeugen.

Beispiel:
06.01.2010 12:00 - 15:15 --> 05.01.2010 20:45

Für Lösungsansätze bzw. -Vorschläge wäre ich dankbar.

Gruß
 

Yaslaw

alter Rempler
Moderator
Ich denke, du willst DateAdd verwenden. Ich hab mal einen kleinen Test gemacht
Einmal für dann wenn du die Uhrzeit noch nicht als Time hast, das 2te Beispiel wenn die deine Uhrzeit bereits als Time vorliegen hast.
Visual Basic:
Public Sub testdate()
    Dim myDate, retVal, myTime As Date
    
    'Testdaten erstellen
    myDate = Now()
    myTime = TimeSerial(15, 15, 0)

    'Test ohne time als Time gespeichert
    retVal = DateAdd("h", -15, myDate)
    retVal = DateAdd("n", -15, retVal)
    Debug.Print retVal
    
    'Test mit time als Time gespeichert
    retVal = DateAdd("h", -Hour(myTime), myDate)
    retVal = DateAdd("n", -Minute(myTime), retVal)
    Debug.Print retVal
End Sub

Nachtrag:
Der Timestamp lässt sich auch mit DateSerial und TimeSerial umsetzen
Visual Basic:
myDate = DateSerial(2010, 1, 6) + TimeSerial(12, 0, 0)
 
Zuletzt bearbeitet: