ЧЧ: ММ: СС Обратный отсчет времени - PullRequest
0 голосов
/ 06 марта 2012

Я не могу понять, как сделать отсчет времени в формате ЧЧ: ММ: СС, используя миллисекунды.Мне нужно сделать 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();

PS: Кроме того, ему придется экономить время, оставшееся до последней проверки.Я с нетерпением жду ответа от вас, ребята.Заранее спасибо!

1 Ответ

5 голосов
/ 06 марта 2012

Ваш расчет неверен, он должен быть:

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 );
...