Quote:
Originally Posted by Kha
Eu tenho uma contagem regressiva aqui que й representada em segundos
pawn Код:
contagems[MAX_PLAYERS] = 120; ////no top
format(esc,sizeof(esc), "tempo: %d" ,contagems); TextDrawSetString(TempoEscola[o], esc);
Ela aparece somente em segundos, como faзo pra transformar isso em minutos?
Ex:
Aparece 120 segundos
O que eu quero: 2:00
Qual a lуgica eu uso pra fazer isso?
|
Os demais jб responderam com cуdigo, gostaria apenas de responder a duvida sobre a lуgica.
Se vocк for analisar a matemбtica bбsica por trбs desse seu problema, levando em consideraзгo que 1 min seja equivalente a 60 segundos, entгo:
sempre que quisermos transformar segundos em minutos, usamos: segundos / 60 = minutos
sempre que quisermos transformar minutos em segundos, usamos: minutos * 60 = segundos
Entгo pra esse seu problema temos:
120 (seg) / 60 (qtd_min) = 2 (min)
assim vocк consegue transformar os seus segundos em minutos, porйm vocк ainda precisa calcular a parte que vem depois dos 2 pontos, ou seja, caso seja 121 segundos, equivalente a 2 minutos e 1 segundo:
121 / 60 = 2 (min)
121 % 60 = 1 (seg)
Se vocк for passar isso pro pawn, vai ficar:
pawn Код:
new min, seg;
min = contagems[playerid] / 60;
seg = contagems[playerid] % 60;
printf("%02d:%02d", min, seg);
OBS: o cуdigo ficou bem menor do que oque foi postado pelos meninos acima, porque foi usado mais lуgica matemбtica do que estruturas computacionais, eu acho que esse devia ser o principio da programaзгo, vocк usar lуgica matemбtica para resolver o problema, porque se nгo vocк comeзa a gerar cуdigos lentos pro seu processador executar.
Se nгo me engano, a formataзгo fica assim, 02, para informar que vai preencher com 0 as 2 casas caso o valor nгo exista.
Caso reste alguma duvida sobre a lуgica, pode perguntar que eu ou os demais respondem.