2010-03-03 50 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