Algorithmus finden

anyany

Mitglied
Hallo, kann mir mal jemand helfen? Ich bin gerade dabei ein Programm in VB zu schreiben was mir aus zwei eingebbaren Zeiten einen Countdown erstellt, aber der Algorithmus zur Errechnung der Zeit für den Countdown will nichts so wirklich funktionieren. Hier mein Code:
stunde = Val(txtstd2.Text) - Val(txtstd1.Text)
If stunde < 0 Then
If txtstd2.Text = 0 Then
stunde = 24 - Val(txtstd1.Text)
Else
stunde = Val(txtstd1.Text) - Val(txtstd2.Text)
End If
End If
minute = Val(txtmin2.Text) - Val(txtmin1.Text)
If minute < 0 Then
If txtmin2.Text = 0 Then
minute = Val(txtmin1.Text)
Else
stunde = stunde - 1
minute = Val(txtmin1.Text) - Val(txtmin2.Text)
End If
End If
sekunde = Val(txtsek2.Text) - Val(txtsek1.Text)
If sekunde < 0 Then
If txtsek2.Text = 0 Then
sekunde = Val(txtsek1.Text)
Else
minute = minute - 1
sekunde = Val(txtsek1.Text) - Val(txtsek2.Text)
End If
End If
 
Benutz doch die DateDiff()-Funktion, damit ist die Handhabung deutlich einfacher als mit deinem Konvolut:
Visual Basic:
 Sekunden = DateDiff("s", Zeit1, Zeit2)
Dabei gibst du die Zeit im Format HH:MM:SS an (lässt sich einfach auch aus Einzelzeiten zusammenstellen), im oa Beispiel kriegst du die Sekunden zurück. Lies dir dazu auch die VB-Hilfe zur Funktion durch.


Der Doc!
 
Nun gut danke soweitt, leider habe ich hier keine Hilfe, weil die Hilfedatei auf irgendeinen Serverpool rumlungern. Inner Uni ist das halt alles ein bisschen anders.
EDIT:
Gut das bringts auch nicht wirklich. Wenn ich mich deiner Variante Zeit1 auf 8Stunden setze und Zeit2 auf 9Stunden dann sagt er mir das es noch 24 Stunden dauert.
Andere Vorschläge
 
Zuletzt bearbeitet:
Ich versteh dein Problem nicht, bei mir funktioniert alles ohne Probleme. Hier mal der Code eines kleinen Countdowns mittels Timer:
Visual Basic:
Dim Sekunden
Private Sub Form_Load()
 Zeit1 = "08:00:00"
 Zeit2 = "09:00:00"
 Sekunden = DateDiff("s", Zeit1, Zeit2)
End Sub
'Timer Control auf die Form
Private Sub Timer1_Timer()
 Me.Caption = "Noch " & Sekunden & " Sekunden"
 Sekunden = Sekunden - 1
 If Sekunden = 0 Then Timer1.Enabled = False: MsgBox "Ende!"
End Sub
Ist eine unschöne Variante, gibt noch bessere, die hier ist aber nur zur Verdeutlichung der DateDiff-Funktion. Schöner gehts z.B. mit der GetTickCount-API.


Der Doc!
 
Zurück