2012-12-15 51 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.