Minuten, Sekunden Countdown

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Minuten, Sekunden Countdown

    Hallo,
    ich habe ein Code der Tage, Stunden, Minuten und Sekunden runterzählt.
    Nun möchte ich diesen ändern dass er nur Minuten und Sekunden runterzählt.

    Weiß jemand wie ich das anstelle?


    Form1.vb

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private valert As String = 2 ' minutes
    3. Dim HourTimer As DateTime
    4. Dim countdown As Date
    5. Public DateTo As Integer = 5
    6. Dim t1, t2, t3, t4, t5, t6
    7. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    8. HourTimer = DateTime.Now
    9. loader.Start()
    10. Dim sDateTo As DateTime = Installeddate()
    11. sDateTo = sDateTo.AddDays(DateTo)
    12. t1 = sDateTo.ToString("hh")
    13. t2 = sDateTo.ToString("mm")
    14. t3 = sDateTo.ToString("ss")
    15. t4 = sDateTo.ToString("yyyy")
    16. t5 = sDateTo.ToString("MM")
    17. t6 = sDateTo.ToString("dd")
    18. countdown = FormatDateTime(t1 & ":" & t2 & ":" & t3 & " " & t4 & "-" & t5 & "-" & t6, DateFormat.GeneralDate)
    19. tmrCountdown.Start()
    20. End Sub
    21. Private Sub tmrCountdown_Tick(sender As Object, e As EventArgs) Handles tmrCountdown.Tick
    22. Dim oldDate As Date = Date.Now
    23. Dim nowdate As Date = countdown
    24. Dim diff As TimeSpan = nowdate.Subtract(oldDate)
    25. Me.Label6.Text = diff.Days & " Days"
    26. Label10.Text = diff.Hours & ":" & diff.Minutes & ":" & diff.Seconds
    27. Try
    28. If diff.Days = 0 And diff.Hours = 0 And diff.Minutes = 0 & diff.Seconds = 0 Then
    29. End If
    30. Catch ex As Exception
    31. tmrCountdown.Stop()
    32. Label10.Text = "00:00:00"
    33. MsgBox("Time is Up!", MsgBoxStyle.Critical)
    34. End Try
    35. End Sub
    36. Private Sub loader_Tick(sender As Object, e As EventArgs) Handles loader.Tick
    37. Dim OneHour As DateTime = DateTime.Now
    38. Dim Hour As Double = (OneHour.Subtract(HourTimer)).TotalSeconds
    39. If Hour >= valert * 100 Then
    40. Me.Show()
    41. Me.TopMost = True
    42. Me.TopMost = False
    43. HourTimer = DateTime.Now
    44. End If
    45. End Sub
    46. End Class


    Func.vb

    VB.NET-Quellcode

    1. ​Module Func
    2. Public LO As Object = New IO.FileInfo(Application.ExecutablePath)
    3. Public Function Installeddate() As String
    4. If My.Settings.Installeddate = "" Then : Try : My.Settings.Installeddate = CType(LO, IO.FileInfo).LastWriteTime.ToString("yyyy-MM-dd hh:mm:ss") : My.Settings.Save() : Catch ex As Exception : End Try : End If
    5. Return My.Settings.Installeddate
    6. End Function
    7. End Module


    Der Countdown wird auch gespeichert, also wenn man es schließt dann wird der letzte Stand des Countdowns gespeichert.

    Ich hoffe mir kann jemand weiterhelfen^^
    Danke.

    MrFish schrieb:

    Weiß jemand wie ich das anstelle?
    Du hast eine falsche Herangehensweise.
    Du zählt nicht Tage und minuten, sondern Ticks.
    Die Frage ist, wie diese Ticks formatiert werden.
    Statt t1 bis t6 machst Du HourTimer.ToString("hh:mm:ss yyyy-MM-dd").
    Und mit dem TimeSpan geht das so:

    VB.NET-Quellcode

    1. Dim sp As TimeSpan = DateTime.Now - HourTimer
    2. If CInt(sp.TotalDays) > 0 Then
    3. Label1.Text = sp.TotalDays.ToString
    4. Else
    5. Label1.Text = String.Format("{0}:{1:00}", CInt(sp.TotalMinutes), sp.Seconds)
    6. End If
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @MrFish Dann solltest Du dringend meinen Code verstehen und die erste Ausgabe entsprechend modifizieren.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!