有人在一个班次中做了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;结果是当一个数字低于模数时,它真的不是很有帮助,而且如果有人只登录几秒钟,我将不得不捕捉到一些东西……
发布于 2010-03-03 14:37:08
你需要同时使用模数和除法:
t = seconds_in_shift;
secs = t % 60;
t /= 60;
mins = t % 60;
t /= 60;
hour = t;或者:
secs = ttime % 60;
mins = (ttime / 60) % 60;
hour = ttime / 3600;另一种选择是使用标准C(<stdlib.h>)中的div()函数:
div_t v1 = div(ttime, 60);
div_t v2 = div(v1.quot, 60);在此之后,v1.rem包含秒;v2.rem包含分钟,v2.quot包含基于最初在ttime中的秒数的小时。
发布于 2019-04-04 01:46:17
根据Jonathan的回答,我认为准确的答案应该是这个…
$total_time = 61000;
$sec = $total_time % 60;
$total_time = ($total_time - $sec) / 60;
$min = $total_time % 60;
$hour = ($total_time - $min) / 60;
echo "$hour hours, $min minutes and $sec seconds";但是,如果您的服务器安装了PHP7,则可以使用intdiv()函数。一种整数除法,其中余数被丢弃。
// $hour = ($total_time - $min) / 60; old code but still works
$hour = intdiv($total_time, 60); // PHP7 and above codehttps://stackoverflow.com/questions/2369137
复制相似问题