Convertir des milisecondes en heures, minutes, secondes, ms

Convertir des milisecondes en heures, minutes, secondes, ms - Algo - Programmation

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 :fou:  
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
Reply

Marsh Posté le 31-07-2003 à 08:55:44   

Reply

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 :??:

Reply

Marsh Posté le 31-07-2003 à 09:07:45    

Code :
  1. void convert(int timems,int &heure,int &min,int &sec,int &ms)
  2. {
  3.    int val = 1000*3600;
  4.    int rest;
  5.    heure = timems/val;
  6.    rest = timems - heure*val;
  7.    val /= 60;
  8.    min = rest/val;
  9.    rest = rest - min *val;
  10.    val /= 60;
  11.    sec = rest/val;
  12.    ms = rest - sec *val;
  13.  
  14. }


 
Ca devrait marcher


---------------
Le Tyran
Reply

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


Message édité par polo021 le 31-07-2003 à 09:13:00
Reply

Marsh Posté le 31-07-2003 à 09:12:51    

Si tu t'en sors pas avec tout ça on peu plus rien pour toi  [:ddr555]


---------------
Le Tyran
Reply

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 !  [:thraell]


Message édité par El_gringo le 31-07-2003 à 09:27:43
Reply

Marsh Posté le 31-07-2003 à 09:28:52    

DarkOli a écrit :

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 :??:


 
Heu, sans cast il va me faire des histoires !

Reply

Marsh Posté le 31-07-2003 à 09:30:04    

El_gringo a écrit :


 
Heu, sans cast il va me faire des histoires !


pkoi?
 
T'as des int partout  [:spamafote]  
 
Tu veux caster des ms en heure? :heink:  [:ddr555]


---------------
Le Tyran
Reply

Marsh Posté le 31-07-2003 à 09:36:16    

LetoII a écrit :


pkoi?
T'as des int partout  [:spamafote]  
Tu veux caster des ms en heure? :heink:  [:ddr555]  


 
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 ?

Reply

Marsh Posté le 31-07-2003 à 09:38:24    

El_gringo 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 ?


Pour des entiers / donne toujours un résultat entier...si tu veux le reste % est là pour ça! [:skeye]

Reply

Marsh Posté le 31-07-2003 à 09:38:24   

Reply

Marsh Posté le 31-07-2003 à 09:39:09    

El_gringo 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 ?


 
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 :D 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.


---------------
Le Tyran
Reply

Marsh Posté le 31-07-2003 à 09:45:43    

LetoII a écrit :


donc dans notre cas il fait une division entière et ça te donen un entier.


 
Et ça tombe bien parce que c'est justement ce qu'on veut !
Merci.

Reply

Marsh Posté le 31-07-2003 à 10:03:37    

El_gringo a écrit :


 
Heu, sans cast il va me faire des histoires !


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).


Message édité par darkoli le 31-07-2003 à 10:07:04
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed