Convertir des milisecondes en heures, minutes, secondes, ms - Algo - Programmation
Marsh Posté le 31-07-2003 à 09:04:24
int  ms=?; 
int  millisecondes=0; 
int  secondes=0; 
int  minutes=0; 
int  heures=0; 
 
millisecondes=ms%1000; 
ms=ms/1000; 
secondes=ms%60; 
ms=ms/60; 
minutes=ms%60; 
ms=ms/60; 
heures=ms; 
 
Je crois qu'il n'y a pas plus simple ![]()
Marsh Posté le 31-07-2003 à 09:07:45
Code :
  | 
 
 
Ca devrait marcher
Marsh Posté le 31-07-2003 à 09:11:49
tu fais : 
nb_millisecondes /3600000 = x_heures 
nb_millisecondes %3600000 = reste 
reste * 3600000/60000 = x_minutes 
reste * 3600000%60000 = reste 
reste *60 = x_secondes 
 
 
pas teste 
EDIT : grille
Marsh Posté le 31-07-2003 à 09:12:51
Si tu t'en sors pas avec tout ça on peu plus rien pour toi  
 
Marsh Posté le 31-07-2003 à 09:25:30
Vous n'auriez pas d'autrs idées ? 
 
 
 
EDIT : j'déconne hein. ça m'va très bien, c'est nickel. IL me reste plus qu'a choisir !  
 
Marsh Posté le 31-07-2003 à 09:28:52
| DarkOli a écrit : int  ms=?;   | 
 
 
Heu, sans cast il va me faire des histoires !
Marsh Posté le 31-07-2003 à 09:30:04
| El_gringo a écrit :    | 
 
pkoi? 
 
T'as des int partout  
  
 
Tu veux caster des ms en heure? 
  
 
Marsh Posté le 31-07-2003 à 09:36:16
| LetoII a écrit :    | 
 
 
Non, j'pensais que le compilateur râlerait du fait qu'on divise un entier : le résultat peut être un nombre réel (flottant). En C, le résultat d'un division n'est pas toujours un flottant ? Il prend la partie entière du résultat sans rien dire ?
Marsh Posté le 31-07-2003 à 09:38:24
| El_gringo a écrit :    | 
 
Pour des entiers / donne toujours un résultat entier...si tu veux le reste % est là pour ça! 
 
Marsh Posté le 31-07-2003 à 09:39:09
| El_gringo a écrit :    | 
 
 
si tu divise deux variables du même type le résultat sera de ce type, quand tu as des types différents... j'ai oublié la régle 
 mais y a une des deux variable qui est casté vers l'autre type (vraissemblement var1 dans cet exemple: var1/var2) 
 
donc dans notre cas il fait une division entière et ça te donen un entier.
Marsh Posté le 31-07-2003 à 09:45:43
| LetoII a écrit :    | 
 
 
Et ça tombe bien parce que c'est justement ce qu'on veut ! 
Merci.
Marsh Posté le 31-07-2003 à 10:03:37
| El_gringo a écrit :    | 
 
Ben non ! 
Comme dis plus haut, ce n'est que des entiers ! 
Par contre si tu veux que le resultat de la division ne soit pas un entier il faut que tu castes au moins un des nombres ! 
 
Exemple : (double)a/(double(b).
Marsh Posté le 31-07-2003 à 08:55:44
tout simplement, j'ai une durée en ms, et je cherche à la décomposer en heures, minutes, secondes, ms.
  
ça m'énerve
C'est surement tout bête, mais j'arrive pas à faire ça de manière efficace...
Heeelp !
Message édité par El_gringo le 31-07-2003 à 09:52:57