【问题标题】:Converting a decimal integer to a sexagesimal number将十进制整数转换为六十进制数
【发布时间】:2014-04-16 06:14:40
【问题描述】:

我正在寻找将十进制转换为六十进制的简单 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 

【问题讨论】:

  • 是否有任何程序可以将UTC转换为当地时间。

标签: c datetime time arduino


【解决方案1】:

您不能只对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);

【讨论】:

    【解决方案2】:

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

    为修补六十进制系统竖起大拇指,它具有出色的“数学美感”,而且我已经很久没见过有人用它做了什么了。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2010-10-16
        • 1970-01-01
        • 2015-01-26
        • 1970-01-01
        • 2013-05-31
        • 2018-07-04
        相关资源
        最近更新 更多