我正在寻找将十进制转换为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
答案 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);