有人在一个班次中完成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; 事实证明,当一个数字低于模数时,它真的不是很有用,而且我必须要抓住的东西应该有人只能登录几秒钟......
你需要使用模数和除法:
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.