tijd in mnuten:seconden weergeven

Status
Niet open voor verdere reacties.

chrisje181

Gebruiker
Lid geworden
23 okt 2008
Berichten
106
Hallo allemaal,

Ik ben bezig met een spelletje en wil het volgende bereiken:

Ik heb een counter aangemaakt (die staat op 1800 seconden oftewel een halfuur)

nu wil ik dat label1.text netjes weergeeft hoeveel minuten en seconden dat zijn.

kan iemand mij het laten zien he het moet:

Code:
Dim counter As Integer = 1800

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Timer1.Enabled = True

    End Sub

    Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
        counter = counter - 1
        Label1.Text = counter
        Label2.Text = counter / 60 * 60
    End Sub

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Label1.Text = counter
    End Sub
 
Voorbeeld 170sec
2 manieren:
Je kan het op jou manier doen:
Eerst delen door 60 en dan afronden naar beneden.
170/60 word dan 2

vervolgens 170- (2*60) zijn je seconden

afronden kan via Math.Round

2de manier die ik zou gebruiken is DateTime
daar kan je dan zeggen hoeveel seconden het zijn (setSeconds denk ik)
en dan kan je direct daarna:
.ToString("mm") min
.ToString("ss") sec
met de datum doen
 
Laatst bewerkt:
Voor het eerste is het dit:

Code:
        Dim seconds As Integer = 180

        ' MOD betekend delen maar dan met rest als output
        Dim ss As Integer = seconds Mod 60               ' Dit word de seconden
        Dim mm As Integer = (seconds - ss) / 60         ' Dit worden de minuten

maar ben zelf meer in C# en weet de equvalent van DateTime voor vb niet vanbuiten ;)
 
Laatst bewerkt:
waarom werkt ditniet:

Code:
' MOD betekend delen maar dan met rest als output
        Dim ss As Integer = counter Mod 60               ' Dit word de seconden
        Dim mm As Integer = (counter - ss) / 60         ' Dit worden de minuten
        Dim hh As Integer = (counter - mm) / 60
        Label2.Text = mm
        Label3.Text = ss
        Label5.Text = hh
zonder die hour werkt het welnamelijk.
 
Code:
Dim lHrs As Long
Dim lMinutes As Long
Dim lSeconds As Long

lSeconds = Seconds     'Seconds is je var. met de seconden

lHrs = Int(lSeconds / 3600)
lMinutes = (Int(lSeconds / 60)) - (lHrs * 60)
lSeconds = Int(lSeconds Mod 60)

zelfde, alleen iets veiliger te gebruiken
 
Hoi,

Je kan ook het volgende gebruiken:
[CPP] Dim InputSec As Integer = 1800
Dim Time As TimeSpan = TimeSpan.FromSeconds(InputSec)
LblDag.Text = Time.Days
LblUur.Text = Time.Hours
LblMin.Text = Time.Minutes
LblSec.Text = Time.Seconds[/CPP]

Hier komt hetzelfde uit, dus dan kan je zelf kiezen welke je wil gebruiken!

MartinJM
 
hier is een stukje code:
Code:
dim inputSeconds as integer = 1000
dim outputSeconds as integer = 0
dim outputMinutes as integer = 0
outputMinutes=cInt(inputSeconds/60-0.5)
outputSeconds = inputSeconds-(outputMinutes*60)
korte uitleg:
een integer kan geen decimalen hebben dus 0,5 word altijd 1
cInt maakt van ieder getal een integer
wat ik doe is de seconde delen door 60 (16.667)
dan heb je het aantal minuten exact
dan -0.5 en cInt zodat het omlaag afgerond word.
dus 16
dan 1000 - 16*60 = 100 - 960 = 40
uiteindelijk
16 minuten en 40 seconden
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan