将十进制整数转换为六十进制数

时间:2014-03-12 08:36:07

标签: c datetime time arduino

我正在寻找将十进制转换为sexagesimal的简单c代码。这就是我想要做的。

t1=13:05
t2=5:30 
t1 minute=13*60+05=785
t2 in minute=5*60+30=330
t1-t2=455minute
time diff=455/60=7 hour 58 minute ("this wrong consideration since value in decimal");
but expected is 7 hour 35 minute 

3 个答案:

答案 0 :(得分:0)

使用整数除法获取整个小时数,然后用模数得到数字或分钟数。

答案 1 :(得分:0)

如果我理解正确的话,你基本上是在询问如何将数字从十进制基数转换为另一个基数,即60。我认为通用算法可以帮助您了解问题背后的一般概念,试试这个http://www.cs.trincoll.edu/~ram/cpsc110/inclass/conversions.html

竖起大拇指修补性别系统,它具有很好的“数学美感”,而且我还没有看到过任何一个人用它来做事。

答案 2 :(得分:0)

您不能只对455/60进行整数除法,并希望直接获得小时和分钟。这将是几个小时和分数。

相反,您可以:

diff_in_hours = (t1 - t2) / 60;
diff_in_mins = (t1 - t2) % 60;
printf("difference in time is %d : %d", diff_in_hours, diff_in_mins);