2012-12-15 53 views
0

我有一个倒数计时器,可以正常工作,除了我的智能手机号码的秒数超过两位数。我创建了2个日历对象,并在那里有毫秒的时间,然后减去它。代码不能倒数计时器有100秒秒

long milsecs1= calendar1.getTimeInMillis(); 
    long milsecs2 = calendar2.getTimeInMillis(); 

    long diff = milsecs2 - milsecs1; 
    long dsecs = diff/1000; 

    long ddays = diff/(24 * 60 * 60 * 1000); 
    diff=diff-ddays *(24 * 60 * 60 * 1000); 
    textDays.setText( Integer.toString((int)ddays)+":"); 

    long dhours = diff/(60 * 60 * 1000); 
    diff=diff-dhours* (60 * 60 * 1000); 
    textHours.setText( Integer.toString((int)dhours)+":"); 

    long dminutes = diff/(60 * 1000); 
    diff=diff-dminutes* (60 * 1000); 
    textMinuts.setText( Integer.toString((int)dminutes)+":"); 

///////////////////////////////////////////////// 
// THIS IS THE PART THAT IS NOT WORKING, I WANT NUMBERS 0-99, BUT GETTING NUMBERS LIKE 230 
    long dseconds = diff/(100); 
    textSeconds.setText( Integer.toString((int)dseconds)+":"); 
    diff=diff-dseconds; 
+0

查找您的Java参考中的'%'运算符。 –

+0

并记住您以毫秒值开始 –

回答

0

Joda time提供其Period class一个更简单(彻底成熟的)解决方案。像这样的事情应该做的(未经测试):

Period period = new Period(calendar1.getTimeInMillis(), calendar2.getTimeInMillis()); 
int days = period.getDays(); 
int hours = period.getHours(); 
... etc.