2010-03-03 5 views
2

Quelqu'un fait 20 heures 42 minutes & 16 secondes en un seul décalage totalisant 74536 secondes. Comment puis-je obtenir les heures du nombre de secondes que la personne a effectuées pour ce quart de travail?Composants du temps de retour avec module

20 * 60 * 60  = 72000 
    42 * 60  =  2520 
      16  =  16 
        + ----- 
Total    = 74536 
____________________________ 
Total % 60  = Seconds (16) 
Total % ?   = Minutes (42) 
Total % ?   = Hours (20) 

Essayé 84600 déjà; se révèle quand un nombre est inférieur le module, ce n'est vraiment pas très utile, et quelque chose que je vais devoir attraper si quelqu'un ne signe que pendant quelques secondes ...

+0

NB: 74536% 3600 = 2536. –

Répondre

4

Vous devez utiliser à la fois le module et la division :

t = seconds_in_shift; 
secs = t % 60; 
t /= 60; 
mins = t % 60; 
t /= 60; 
hour = t; 

Ou:

Une autre option utilise la fonction div() de standard C (<stdlib.h>):

div_t v1 = div(ttime, 60); 
div_t v2 = div(v1.quot, 60); 

Ensuite, v1.rem contient les secondes; v2.rem contient les minutes et les heures v2.quot contient en fonction du nombre de secondes à l'origine ttime.

+0

Ensuite, posez simplement les résultats, ou transtypez en int. –

Questions connexes