【问题标题】:Convert milliseconds to minutes [closed]将毫秒转换为分钟 [关闭]
【发布时间】:2011-05-18 21:13:30
【问题描述】:

如何在 Objective-C 或 C 中将毫秒转换为分钟或小时?

【问题讨论】:

  • 一秒有 1000 毫秒。一分钟有60秒。 966000 / 1000 => 966 / 60 => 16 分钟。
  • Close-as-off-topic 缺少“属于 math.stackexchange.com”选项...
  • @R:我认为这将作为“离题:编程问题”在那里结束。
  • 不是一个真正的问题?!这是一个完全有效的问题。这只是一个骗局。

标签: objective-c c math time


【解决方案1】:

只需使用简单的除法。使用浮点数,以免因舍入而丢失精度。

float milliseconds = 966000.0;
float seconds = milliseconds / 1000.0;
float minutes = seconds / 60.0;
float hours = minutes / 60.0;

【讨论】:

    【解决方案2】:
    #define MSEC_PER_SEC    1000L
    #define SEC_PER_MIN     60
    #define MIN_PER_HOUR    60
    
    int msec = 966000;
    int min  = msec / (MSEC_PER_SEC * SEC_PER_MIN);
    int hr   = min  / (MIN_PER_HOUR);
    

    【讨论】:

    • +1 用于命名常量
    • @progrmr 描述性,但仅此而已,因为您可以假设这些常量永远不会在有意义的上下文中更改它们的值。
    • @Christian,没有有意义名称的幻数是不好的风格,无论它们的值在这个宇宙中是否发生变化。
    【解决方案3】:

    听起来有点像在开玩笑,但到底是什么……

    • 除以 60*1000… 分钟。
    • 除以 60*60*1000… 小时。

    它的美妙之处在于它适用于所有编程语言。

    【讨论】:

      【解决方案4】:

      除以 1000 得到秒数。将秒除以 60 得到分钟。

      【讨论】:

        猜你喜欢
        • 2016-06-29
        • 2014-03-18
        • 1970-01-01
        • 1970-01-01
        • 2022-12-31
        • 2018-11-16
        • 1970-01-01
        • 2014-02-13
        相关资源
        最近更新 更多