2011-05-18 171 views
0

如何在Objective-C或C中將毫秒轉換爲分鐘或小時?將毫秒轉換爲分鐘

+1

一秒鐘內有1000毫秒。一分鐘內有60秒。 966000/1000 => 966/60 => 16分鐘。 – Marvo 2011-05-18 21:18:22

+2

關閉作爲主題缺乏「屬於math.stackexchange.com」選項... – 2011-05-18 21:19:02

+0

可能重複的[在毫秒轉換毫秒秒](http://stackoverflow.com/questions/1294885/convert -milliseconds-to-seconds-in-c) – 2011-05-18 21:27:22

回答

8

只需使用簡單的劃分。使用浮點數,以避免舍入精度下降。

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

除以1000得到秒。將秒數除以60以獲得分鐘數。

2

聽起來有點像一個笑話,但究竟發生了什麼......

  • 除以60 * 1000 ...幾分鐘。
  • 除以60 * 60 * 1000 ...數小時。

它的美妙之處在於它適用於所有的編程語言。

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

使用命名常量+1 – progrmr 2011-05-18 21:50:05

+0

@progrmr描述性的,但不是更多,因爲您可以假定這些常量永遠不會在有意義的上下文中改變它們的值。 – 2011-05-18 22:43:05

+1

@Christian,無論有沒有有意義的名字的幻數都是不好的風格,不管它們的值是否在這個宇宙中改變。 – mizo 2011-05-18 22:56:26