使用模数返回时间组件

Mar*_*lin 2 time epoch modulo

有人在一个班次中完成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)
Run Code Online (Sandbox Code Playgroud)

已经尝试了84600; 事实证明,当一个数字低于模数时,它真的不是很有用,而且我必须要抓住的东西应该有人只能登录几秒钟......

Jon*_*ler 5

你需要使用模数和除法:

t = seconds_in_shift;
secs = t % 60;
t /= 60;
mins = t % 60;
t /= 60;
hour = t;
Run Code Online (Sandbox Code Playgroud)

要么:

secs =  ttime % 60;
mins = (ttime / 60) % 60;
hour =  ttime / 3600;
Run Code Online (Sandbox Code Playgroud)

另一个选项使用div()标准C(<stdlib.h>)中的函数:

div_t v1 = div(ttime, 60);
div_t v2 = div(v1.quot, 60);
Run Code Online (Sandbox Code Playgroud)

之后,v1.rem包含秒; v2.rem包含分钟,并v2.quot包含基于最初秒数的小时数ttime.