| |
VB.NET - Ein- und Umsteigernächste volle Stunde ermitteln | | | Autor: Marty** | Datum: 31.07.22 11:01 |
| Hallo,
wie kann ich die nächste volle Stunde ermitteln, und einen Countdown dazu erstellen ? | |
Re: nächste volle Stunde ermitteln | | | Autor: sv00010 | Datum: 31.07.22 20:25 |
| Mit DateTime.Now das aktuelle Datum/Zeit herausfinden.
Dann mit DateTime.AddHours(1) eine Stunde dazu addieren und einer neuen DateTime-Variable zuweisen.
Dann im neuen DateTime die Minuten, Sekunden, Millisekunden alle auf 0 setzen.
Danach dann mit DateTime.Subtract vom Datum mit der addierten einen Stunde usw., das aktuelle Datum abziehen, welches mit DateTime.Now ermittelt wurde.
Zum Schluss dann noch das Ergebnis der Subtraktion in Minuten und Sekunden usw. umwandeln.
Beitrag wurde zuletzt am 31.07.22 um 20:27:32 editiert. | |
Re: nächste volle Stunde ermitteln | | | Autor: Manfred X | Datum: 01.08.22 10:34 |
| Hallo!
Eventuell könnte man den Countdown in einem eigenen Thread laufen lassen.
Public Class frmCountdown
Dim lblCountdown As New Label With
{.Parent = Me, .Width = 200, .Left = 10, .Top = 10, .BackColor = _
Color.White}
'Starten und Stoppen des CountDown
Dim WithEvents btnstart As New Button With
{.Parent = Me, .Left = 210, .Width = 100, .Top = 10, .Text = "Start"}
Dim running As Boolean = False
'Delegate für das Setzen der Labelanzeige aus dem Hintergrund-Thread
Delegate Sub DelIntInt(mm As Integer, ss As Integer)
Private Sub btnstart_Click(sender As Object, e As EventArgs) Handles _
btnstart.Click
running = Not running
If running Then
'Hintergrund-Thread starten
btnstart.Text = "Stop"
Dim th As New Threading.Thread(AddressOf countdown)
th.Start()
Else
btnstart.Text = "Start"
lblCountdown.Text = ""
End If
End Sub
Private Sub countdown()
Do
Dim mm, ss As Integer
GetMMSS(mm, ss)
lblCountdown.Invoke(New DelIntInt(AddressOf SetCountDown), mm, ss)
'Hintergrund-Thread für eine Sekunde anhalten
Threading.Thread.Sleep(1000)
Loop While running 'Thread läuft bis zur Betätigung der Stop-Taste
End Sub
Private Sub SetCountDown(mm As Integer, ss As Integer)
lblCountdown.Text = mm.ToString("00") & ":" & ss.ToString("00")
End Sub
Private Function GetMMSS(ByRef mm As Integer, ByRef ss As Integer)
Dim dt As DateTime = DateTime.Now.AddHours(1)
Dim dt2 As New DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, 0, 0, 0) _
'nächste volle Stunde
Dim ts As TimeSpan = (dt2 - DateTime.Now) 'aktuelle Differenz zur
' nächsten vollen Stunde
mm = ts.Minutes : ss = ts.Seconds 'Rückgabe
End Function
End Class | |
Re: nächste volle Stunde ermitteln | | | Autor: minimalist | Datum: 01.08.22 10:48 |
| Kannst vielleicht auch so machen:
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles _
Button4.Click
Dim thisHour = DateTime.Now.TimeOfDay.Hours
TextBox5.Text = thisHour 'jetzt stunde
TextBox6.Text = thisHour + 1 ' nächste stunde
End Sub | |
Re: nächste volle Stunde ermitteln | | | Autor: Manfred X | Datum: 01.08.22 11:00 |
| Hallo!
Man muss Zeitpunkte addieren bzw. subtrahieren (Datum und Uhrzeit - DateTime).
Wenn man einfach eine Stunde direkt addiert, gibt es beim Tageswechsel Probleme. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats TOP! Unser Nr. 1
Neu! sevDataGrid 3.0
Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|