2012-03-05 7 views
0

ミリ秒でHH:MM:SS Countdowntimerを作成する方法を理解できません。 CountdownTimerを作成して、翌日までに何時間、分、秒が残っているかを伝える必要があります。私のコードは次のとおりです。HH:MM:SS Countdowntimer

final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 
    long timer = prefs.getLong("TIME", 86400000); 
    new CountDownTimer(timer, 1000) { 

     public void onTick(long elapsed) { 

             time.setText(elapsed/3600000+":"+elapsed/1440000+":"+elapsed/?); 
           SharedPreferences.Editor editor = prefs.edit(); 
           editor.putLong("TIME",elapsed); 
           editor.commit(); 
     } 
     public void onFinish() { 

     } 
     }.start(); 

P.S:また、最後のチェックまで残った時間を節約する必要があります。緊急に皆さんからのご意見をお待ちしております。前もって感謝します!あなたの計算が間違っている

答えて

5

、それは次のようになります。

final static long seconds_in_milllies = 1000L; 
final static long minutes_in_millies = seconds_in_millies * 60; 
final static long hours_in_millies = minutes_in_millies * 60; 

// in onTick 
long hours = elapsed/hours_in_millies; 
elapsed %= hours_in_millies; 
long minutes = elapsed/minutes_in_millies; 
elapsed %= minutes_in_millies; 
long seconds = elapsed/seconds_in_millies; 
time.setText(hours + ":" + minutes + ":" + seconds); 
+0

私はまた、残りの日数を表示したい場合は? –

+0

別のフィールドを追加final static long days_in_millies = hours_in_millies * 24; と内側のチックでこれを追加します。long long days = elapsed/days_in_millies; \t \t \t \t elapsed%= days_in_millies; – CoderDecoder

+0

なぜ静的でなければならないのですか? – grant