2011-03-27 94 views
1

可能重複:
Java Timer跟蹤時間在Java中

我怎麼可以跟蹤的剩餘時間的時間在Java中的固定期限?

舉例來說,我想這顯示輸出的每個第二用戶:

you have 50 seconds 
you have 49 seconds //after 1 second 
you have 48 seconds //after 2 seconds 

等。

+3

請搜索這個網站「【JAVA]計時器」,這已被問過無數次...... – Mat 2011-03-27 17:44:24

回答

4

您可以使用Thread.sleep作爲計時器響應用戶的機制,但我不會依賴它來確保倒計時的準確性。 Thread.sleep使線程在1000毫秒之後再次激活,但在線程再次運行之前可能需要一些額外的時間。

如何:

int remainingTime = 50; 
    long timeout = System.currentTimeMillis() + (remainingTime * 1000); 
    while (System.currentTimeMillis() < timeout) { 
     Thread.sleep(1000); 
     System.out.println("You have : " + (timeout - System.currentTimeMillis())/1000 + " seconds left"); 
    } 
+2

呃,你不混秒和毫秒在第2和5? – meriton 2011-03-27 18:09:59

+0

我做到了。修復 – sstendal 2011-03-28 12:04:33