Пишу маленькое приложение на Android на Java. У меня пользователи в одном активити проходят тест и, по завершению теста, открывается следующее активити, в которое передается итоговая инфа по прохождению теста. Так вот, одно из полей - это потраченное время на задание... я пробую считать время хронометром, но он в миллисекундах считает и потом форматировать через различные проверки в формат 00:00 (02 : 34), очень костыльно получается... Я уверен, что есть более изящное решение...
Как это можно сделать?
Ответ
В начале задания сохраняйте текущее время в long переменную:
long startTime = System.currentTimeMillis();
После окончания получайте разницу:
long totalTime = System.currentTimeMillis() - startTime;
Берём класс Calendar и присваиваем ему полученное значение:
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis( totalTime );
Получаем минуты/секунды (без нулей в начале):
int minutes = cal.get(Calendar.MINUTE);
int seconds = cal.get(Calendar.SECOND);
или в форматированном виде с помощью класса SimpleDateFormat
SimpleDateFormat format = new SimpleDateFormat("mm:ss");
System.out.println(format.format(cal.getTime()));
Комментариев нет:
Отправить комментарий