2010-08-18 62 views
10

我使用某種秒錶在我的項目,我有Android Java:如何減去兩次?

start time ex: 18:40:10 h 
stop time ex: 19:05:15 h 

我需要的結果來自這兩個值一樣final time = stop - start

我發現了一些例子,但他們都非常混亂。

有沒有簡單的解決方案?

回答

26

如果您有字符串,則需要使用java.text.SimpleDateFormat將它們解析爲java.util.Date。例如:

​​

此處diff是18:40:10到19:05:15之間經過的毫秒數。

編輯1:

找到一種方法在網上爲這個(在http://www.javaworld.com/javaworld/jw-03-2001/jw-0330-time.html?page=2):

int timeInSeconds = diff/1000; 
    int hours, minutes, seconds; 
    hours = timeInSeconds/3600; 
    timeInSeconds = timeInSeconds - (hours * 3600); 
    minutes = timeInSeconds/60; 
    timeInSeconds = timeInSeconds - (minutes * 60); 
    seconds = timeInSeconds; 

編輯2:

如果你想把它當作一個字符串(這是一個草率的方式,但它的工作原理):

String diffTime = (hours<10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds < 10 ? "0" + seconds : seconds) + " h"; 

編輯3:

如果你想在毫秒只是這樣做

long timeMS = diff % 1000; 

然後可以除以1000來獲得你的秒小數部分。

+0

Aham我看到這樣的樣品,但我又需要結果爲01:10.34 h,這裏我得到的結果是毫秒,需要更多的數學才能得到希望的結果,是否有最簡單的解決方案? – Nezir 2010-08-18 17:26:13

+0

看我上面的編輯: – jcb 2010-08-18 17:32:04

+0

如果你的時間只記錄小時,分鐘和秒鐘,你將如何獲得毫秒的結果? – jcb 2010-08-18 17:36:27

11

假設你正在使用java.util.Date

long totalTime = endDate.getTime() - startDate.getTime(); 

其結果將是在毫秒的總時間。

+1

謝謝Thierry我完成了一項任務:) – Nezir 2010-08-18 18:42:56