Rent matematiskt hur skulle du ställa upp 2345 sek så att det blir timmar, minuter och sekunder??
Sekunder till timmar, minuter och sekunder.
9 svar · 949 visningar · startad av Fredde Mannen
Enkelt.
tim = tal / 3600, om nödvändigt ta bort decimalerna
min = (tal - (tim*3600)) / 60, om nödvändigt ta bort decimalerna
sek =tal - tim*3600 - min*60
GunnarD skrev:
Enkelt.
tim = tal / 3600, om nödvändigt ta bort decimalerna
min = (tal - (tim*3600)) / 60, om nödvändigt ta bort decimalerna
sek =tal - tim*3600 - min*60
oki.
Så enligt formeln:
tim = tal / 3600, om nödvändigt ta bort decimalerna
min = (tal - (tim*3600)) / 60, om nödvändigt ta bort decimalerna
sek =tal - tim*3600 - min*60
så får vi.. genom att använda 2304 sekunder
Så bör jag få:
timmar = 0,64 <- Timmar, 0,64???
minuter = 0
sekunder = 0
Men timmar 0,64!
OBS! Minuter och sekunder är avrundade till närmaste heltal.
Fick denna formel av en annan kille:
hours = numsec / 3600;
numsec = numsec % 3600;
minutes = nmumsec / 60;
seconds = numsec % 60;
Om det nu är C++ eller PHP eller nåt annat det är en sak... men vad menas med % <- detta tecken..
Det borde väl betyda modulus, dvs rest vid heltalsdivision.
okey...
Men min andra formel som jag fick funkade fint, men att den fortfarande ger timmar i i decimalform??
Dom om jag har 1200 sek så får jag 0,33 timmar och 20 minuter och 0 sekunder...
confused!!! :q
Okey... tog bort det efter decimalerna och då funkade det bättre! :)
> timmar = 0,64 <- Timmar, 0,64???
Riktigt, så tar man bort decimalerna så blir timmar 0 (1 timme är 3600 sekunder)
> minuter = 0
min = (2304 - (0*3600))/60 = 38,4
> sekunder = 0
sek = 2304 - 0*3600 - 38*60 = 24
2304 sekunder = 0 timmar, 38 minuter och 24 sekunder.
Det här kan tyckas vara ett långt svar, men jag tror att det förklarar det mesta :)
Fredde Mannen skrev:
okey...
Men min andra formel som jag fick funkade fint, men att den fortfarande ger timmar i i decimalform??
Dom om jag har 1200 sek så får jag 0,33 timmar och 20 minuter och 0 sekunder...
confused!!! :q
1200 sekunder av en timme (=3600 sekunder) är en tredjedels timme (1200/3600 = 1/3) d.v.s. 20 minuter. Det matematiska svaret 0.3 (strecket ska vara ovanför trean och betyder upprepning) timmar är således helt korrekt, även om det nu blir oändligt många treor efter kommat. Svaret att 1200 sekunder är detsamma som en tredjedels timme och 20 minuter alltså helt fel (svaret borde ha varit 0.33 timmar eller 20 minuter eller 1200 sekunder).
Problemet är att du räknar här med tid och inte tal, som vi vanligtvis gör. (1 timme = 60 minuter, 1 minut = 60 sekunder. Överförklarat så är 10 timmar inte detsamma som 100 minuter, utan 600 minuter.)
[u][b]Formel[/b][/u]
antaltimmar(h) = 0
antalminuter(m) = 0
antalsekunder(s) = 4567
sekunderkvar(sk) = s
1. Medan sk är större än 3600
1.1 öka h med ett
1.2 minska sk med 3600
1.3 upprepa
2. m = sk
3. Medan sk är större än 60
3.1 öka m med ett
3.2 minska sk med 60
3.3 upprepa
4. s = sk
En körning...
h = 0 + 1
sk = 4567 - 3600
m = 967
m = 0 + 1
sk = 967 - 60
m = 1 + 1
[i]osv...[/i]
m = 15 + 1
sk = 67 - 60
s = 7
4567 sekunder = 1 timme, 16 minuter och 7 sekunder