Hallo an alle,
ich habe folgendes Problem, bei welchem ich auch mit Google nicht weiterkomme. Ich habe eine Zeitangabe im Format "hhh:mm:ss". Dabei habe ich nicht aus versehen 3 Mal das "h" geschrieben sondern möchte damit ausdrücken, dass es sich bei "584:12:25" um 584 Stunden 12 Minuten und 25 Sekunden handelt. Die Umwandlung dieses Strings in Sekunden habe ich ohne Probleme mit folgender Funktion hinbekommen:
Auch die umgekehrte Konvertierung ist mit folgendem Code möglich:
Nun habe ich die Funktion secTo Time in einem Timer.Tick Event angewendet und möchte damit erreichen, dass die Zeit im "hhh:mm:ss"-Format rückwärts läuft. Es wird hier ein gefülltes ListView Zeile für Zeile durchgegangen (inklusive Markierung) und die in einer Spalte vorgegebene Zeit in einer anderen Spalte runtergezählt (im Format "hhh:mm:ss").
Nun dachte ich stolzerweise es klappt, aber leider funktioniert das nur bis zum Übergang von 100:00:00 auf 99:59:59. Weil dann fängt er an die Stunden wieder hochzuzählen. Also nicht 100, 99, 98, 97 sondern 100, 101, 102, 102.. und so weiter.
Kann mir jemand auf die Sprünge helfen woran das liegt?
Ich danke schonmal fürs Lesen und würde mich natüelich über eine hilfreiche Antwort sehr freuen. Und falls jemand noch eine effizientere Idee hat, wie man das ganze anders lösen könnte, dann wäre ich auch sehr daran interessiert.
Gruß EmBee
ich habe folgendes Problem, bei welchem ich auch mit Google nicht weiterkomme. Ich habe eine Zeitangabe im Format "hhh:mm:ss". Dabei habe ich nicht aus versehen 3 Mal das "h" geschrieben sondern möchte damit ausdrücken, dass es sich bei "584:12:25" um 584 Stunden 12 Minuten und 25 Sekunden handelt. Die Umwandlung dieses Strings in Sekunden habe ich ohne Probleme mit folgender Funktion hinbekommen:
Auch die umgekehrte Konvertierung ist mit folgendem Code möglich:
Nun habe ich die Funktion secTo Time in einem Timer.Tick Event angewendet und möchte damit erreichen, dass die Zeit im "hhh:mm:ss"-Format rückwärts läuft. Es wird hier ein gefülltes ListView Zeile für Zeile durchgegangen (inklusive Markierung) und die in einer Spalte vorgegebene Zeit in einer anderen Spalte runtergezählt (im Format "hhh:mm:ss").
VB.NET-Quellcode
- Private Sub Timer5_Tick(sender As Object, e As EventArgs) Handles Timer5.Tick
- Dim sec1 As Integer
- Dim z As Integer
- sec1 = timeToSec(ListView1.Items(timr).SubItems(5).Text)
- ListView1.Items.Item(timr).Selected = True
- ListView1.Focus()
- ListView1.Items(timr).SubItems(5).Text = secToTime(sec1 - 1)
- If sec1 = 1 Then
- timr = timr + 1
- End If
- If timr = ListView1.Items.Count Then
- If CInt(lbl_loops_ist.Text) = CInt(txt_Loop.Text) Then
- If CInt(lbl_cycles_ist.Text) = CInt(txt_cycles.Text) Then
- Timer5.Stop()
- MsgBox("Programm beendet")
- Exit Sub
- End If
- lbl_cycles_ist.Text = CStr(CInt(lbl_cycles_ist.Text) + 1)
- lbl_loops_ist.Text = "0"
- End If
- lbl_loops_ist.Text = CStr(CInt(lbl_loops_ist.Text) + 1)
- For z = 0 To ListView1.Items.Count - 1
- ListView1.Items(z).SubItems(5).Text = ListView1.Items(z).SubItems(3).Text
- Next
- timr = 0
- End If
- End Sub
Nun dachte ich stolzerweise es klappt, aber leider funktioniert das nur bis zum Übergang von 100:00:00 auf 99:59:59. Weil dann fängt er an die Stunden wieder hochzuzählen. Also nicht 100, 99, 98, 97 sondern 100, 101, 102, 102.. und so weiter.
Kann mir jemand auf die Sprünge helfen woran das liegt?
Ich danke schonmal fürs Lesen und würde mich natüelich über eine hilfreiche Antwort sehr freuen. Und falls jemand noch eine effizientere Idee hat, wie man das ganze anders lösen könnte, dann wäre ich auch sehr daran interessiert.
Gruß EmBee