2014-02-10 276 views
0

我的持續時間目前以雙精度格式以秒爲單位。我如何轉換它顯示,多少小時,分鐘和秒。如果我除以60就會有餘數。另外,我如何將我的double轉換爲Integer?如果我只是初始化我作爲整數,就會有一個錯誤:以小時,分鐘,秒鐘(以秒爲單位)獲取時間

"Type mismatch: cannot convert from double to int"` at "time=n*30+r1;"

* EDIT(對不起,我寫了錯誤的輸出):·讓說,秒爲132秒。我想在0小時,2分鐘12秒

double time = 0; 
double hourTime=0; 
double minTime=0; 

    btnStartMove.setOnClickListener(new OnClickListener() 
    { 
     @Override 
     public void onClick(View v) { 

      startButtonClicked=true; 
      startDistance=true; 
      counter= new MyCount(30000,1000); 
      counter.start(); 
      btnStartMove.setText("Started..."); 
     } 
    }); 


//button to get duration 
btnDuration.setOnClickListener(new OnClickListener() 
{ 
    @Override 
    public void onClick(View v) { 
     if(startButtonClicked=true) 
     { 
      time=n*30+r1; 
      velocity=dist/time; 
      DecimalFormat df = new DecimalFormat("#.##"); 
      Toast.makeText(MainActivity.this,"Duration :"+String.valueOf(time) + "Speed :"+String.valueOf(df.format(velocity)),Toast.LENGTH_LONG).show(); 

     }  
    } 
    }); 

    public class MyCount extends CountDownTimer{ 
    public MyCount(long millisInFuture, long countDownInterval) { 
    super(millisInFuture, countDownInterval); 
    } 
    @Override 
    public void onFinish() { 
     counter= new MyCount(30000,1000); 
    counter.start(); 
    n=n+1; 
    } 
    @Override 
    public void onTick(long millisUntilFinished) { 
     s1=millisUntilFinished; 
     r1=(30000-s1)/1000; 
    } 
}} 
+0

您是否在尋找這雙d = 5.555d; int n =(int)d; – Rembo

回答

3

遵循此代碼段

private String calculateDifference(long timeInMillis){ 

     hours = (int) ((timeInMillis/(1000 * 60 * 60))); 
     minutes = (int) ((timeInMillis/(1000 * 60)) % 60); 
     seconds = (int) ((timeInMillis/1000) % 60); 
     return hours+":"+minutes+":"+seconds; 
    } 
+0

是我已經計算過的秒數「timeInMillis」了嗎?因爲我計算的時間是幾秒鐘,我怎麼轉換爲毫秒?答案也遵循格式(請參閱更新) – Myst

+0

乘以1000以將秒轉換爲毫秒(timeInSec * 1000)。 –

+0

謝謝!它確實有用。 68秒變成1分8秒。非常感謝。但我把時間放在兩倍,因爲涉及它的其他變量似乎也是雙倍。你知道我如何將double轉換爲int。我只需要將它轉換一次再單獨傳遞。我使用parstInt,但最後一次我使用它不能在雙倍的工作。沒有在問題中說明,但感謝如果你可以幫助 – Myst

0

檢查我的答案Timer display to countdown

@Override 
public void onTick(long millisUntilFinished) { 
long temp_long = millisUntilFinished/1000; 

second = temp_long % 60; 
hour = temp_long/3600; 
minute = (temp_long/60) % 60; 
String tempTimer; 
tempTimer = ((hour < 10) ? "0" + hour : "" + hour)+ ((minute < 10) ? ":0" + minute : ":"+ minute)+ ((second < 10) ? ":0" + second : ":" + second); 
mTextField.setText(tempTimer); 
} 
相關問題