2014-03-06 60 views
1

這是我的代碼。得到毫秒顯示在Android decive

int hours = (int) (timeElapsed/3600000); 
int minutes = (int) (timeElapsed - hours * 3600000)/60000; 
int seconds = (int) (timeElapsed - hours * 3600000 - minutes * 60000)/1000; 

我現在需要計算運行非常快毫秒。

請問我該怎麼做?

+0

我只是想我會提到,師運行相對緩慢上相比加法,減法,乘法和大多數設備。 – ArtOfWarfare

回答

0

根據你現有的邏輯,試試這個。

int millis = (int) (timeElapsed - hours * 3600000 - 
        minutes * 60000 - seconds * 1000); 
0

它可能不是快得令人難以置信,但你可以做 INT米利斯= timeElapsed%1000; 如果你正在尋找一個簡單的計算。如果優化器意識到它不依賴於以前的變量,它可能運行得更快。這就是說,與加法,乘法和減法相比,模是一個昂貴的操作。

+0

這是從我的手機。有人可以修復格式,如果他們有第二個?當我到達電腦時,我們可以做到這一點。提前致謝。 – Matt

+0

它不是很快...它運行像一秒..順便說一句,我只需要2毫秒的毫秒..它從1位數到2到3到4,所以喲... – user3259486

+0

如果它是可以接受的廢墟這很快,你只需要兩位數字,只需粘貼/ 10結束,它應該得到你想要的。如果這還不夠快,我會集思廣益。 – Matt

2

加速事情的一種方法是通過重新使用某些中間計算來最小化運行時數學運算。添加一些常量,其計算在編譯時完成,將增加可讀性。假設timeElapsed是一個int類型,你也可以刪除這個轉換。

final int MILLISECONDS_PER_SECOND = 1000; 
    final int MILLISECONDS_PER_MINUTE = 60 * MILLISECONDS_PER_SECOND; 
    final int MILLISECONDS_PER_HOUR = 60 * MILLISECONDS_PER_MINUTE; 

    int hours = timeElapsed/MILLISECONDS_PER_HOUR; 
    timeElapsed -= hours * MILLISECONDS_PER_HOUR; 

    int minutes = timeElapsed/MILLISECONDS_PER_MINUTE; 
    timeElapsed -= minutes * MILLISECONDS_PER_MINUTE; 

    int seconds = timeElapsed/MILLISECONDS_PER_SECOND; 
    timeElapsed -= seconds * MILLISECONDS_PER_SECOND; 

    int millis = timeElapsed; 

最後兩行可以組合多一點速度,但對稱性看起來不錯。 :-)

0
int(millis()/3600000); //HORAS - H 

int((millis() % 3600000)/60000); //MINUTOS - M 

int(((millis() % 3600000) % 60000)/1000); //SEGUNDOS - S 

int(((millis() % 3600000) % 60000) % 1000); //MILESIMAS SEGUNDO - MS 

:)