2014-03-06 39 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 

:)