2010-03-03 49 views
2

有人可以20小時42分鐘& 16秒內共計74536秒。 如何獲得該人爲該班次完成的秒數?返回時間模塊組件

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

已經試過84600;當數字低於模數時,它確實不是很有幫助,而且如果某人只登錄了幾秒鐘,我將不得不趕上...

+0

注意:74536%3600 = 2536. – 2010-03-03 06:40:59

回答

4

您需要同時使用模數和除法:

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

或者:

另外一個選項使用標準C的div()功能(<stdlib.h>):

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

之後,v1.rem包含秒; v2.rem包含分鐘數,並且v2.quot包含的小時數基於原來在ttime中的秒數。

+0

然後只是發佈結果,或者投射到int。 – 2010-03-03 13:10:48