Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

[VB.Net] Probleem met Countdown timer

Ik ben net begonnen met programmeren in VB.Net, m'n eerste tooltje (een programma om af te tellen naar een bepalde datum) is al aardig op weg. Maar ik loop tegen iets raars aan. Ik heb nu het tooltje zo gemaakt dat als je op een knop drukt hij de dagen, uren, minuten en seconden laat zien in een label. Het zou natuurlijk mooier zijn als darbij de seconden, minuten enz. ook daadwerkelijk zouden aftellen. Dat is me ook wel gelukt, maar het rare is dat de minuten niet terugspringen als de seconden op 0 staan, maar ergens (en steeds op een ander moment) er tussenin. Ik vermoed dat het komt omdat ik in mijn code de variabele die het startpunt van de secondenteller markeert gedefinieerd heb als: Dim secondenteller As Integer = Now.Second Voor de volledigheid geef ik de code zoals ik hem nu geschreven heb: (ik laat wat franje van knoppen etc. weg) [code:1:0bb3481274]Public Class frmMainForm Dim secondenteller As Integer = Now.Second Dim minutenteller As Integer = Now.Minute If File.Exists("C:\Tekst.txt") = True Then Dim Instellingen As String Instellingen = My.Computer.FileSystem.ReadAllText("C:\Tekst.txt") Dim Regel() As String = Instellingen.Split(vbNewLine) Dim datum As Date = CDate(Regel(0)) Dim Tijd As Date = CDate(Regel(1)) Moment = datum.Year & "/" & datum.Month & "/" & datum.Day & " " & Tijd.Hour & ":" & Tijd.Minute & ":" & Tijd.Second Else Moment = New Date(2008, 4, 26) End If Dim minuten As Integer Dim uren As Integer Dim dagen As Integer Dim seconden As Long = DateDiff(DateInterval.Second, Now(), Moment) dagen = seconden \ 86400 seconden = seconden Mod 86400 uren = seconden \ 3600 seconden = seconden Mod 3600 minuten = seconden \ 60 seconden = seconden Mod 60 'Return dagen & uren & minuten & seconden '" & vbCrLf & "tot de geplande datum en tijd!" Return Moment End Function Public Sub btnBerekenen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBerekenen.Click Dim moment As Date tmrSeconds.Enabled = True tmrminute.Enabled = True GeefResterendeTijd(moment) 'Label1.Text = "Nog " & GeefResterendeTijd(moment) End SubPrivate Sub tmrSeconds_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrSeconds.Tick Dim moment As Date Dim RekenTijd As Date = GeefResterendeTijd(moment) Dim uren As Integer = RekenTijd.Hour Dim dagen As Integer = RekenTijd.Day secondenteller = secondenteller - 1 If secondenteller = 0 Then secondenteller = 60 End If If uren = 0 Then uren = 23 dagen = dagen - 1 End If Label1.Text = "Nog " & dagen & " dagen, " & uren & " uren, " & minutenteller.ToString & " minuten en " Label3.Text = secondenteller.ToString & " seconden tot het geplande vertrek!" Label4.Text = minutenteller.ToString End Sub Private Sub tmrminute_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrminute.Tick minutenteller = minutenteller - 1 End Sub End Class [/code:1:0bb3481274] Er zit ondertussen wel wat zooi in de code door het experimenteren wat ik gedaan heb, maar ja, ik ben nog aan het leren, nietwaar? Enige hulp zou zeer welkom zijn! :wink:

ruudtb205