Android Java: как вычесть два раза?

Я использую какой-то секундомер в моем проекте, и у меня есть

start time ex: 18:40:10 h stop time ex: 19:05:15 h 

Мне нужен результат из этих двух значений, таких как final time = stop - start

Я нашел несколько примеров, но все они очень запутывают.

Есть ли простое решение?

Solutions Collecting From Web of "Android Java: как вычесть два раза?"

Если у вас есть строки, вам нужно проанализировать их в java.util.Date, используя java.text.SimpleDateFormat. Что-то вроде:

  java.text.DateFormat df = new java.text.SimpleDateFormat("hh:mm:ss"); java.util.Date date1 = df.parse("18:40:10"); java.util.Date date2 = df.parse("19:05:15"); long diff = date2.getTime() - date1.getTime(); 

Здесь diff – количество миллисекунд, прошедшее между 18:40:10 и 19:05:15.

EDIT 1:

Найден метод онлайн для этого (на http://www.javaworld.com/javaworld/jw-03-2001/jw-0330-time.html?page=2 ):

  int timeInSeconds = diff / 1000; int hours, minutes, seconds; hours = timeInSeconds / 3600; timeInSeconds = timeInSeconds - (hours * 3600); minutes = timeInSeconds / 60; timeInSeconds = timeInSeconds - (minutes * 60); seconds = timeInSeconds; 

EDIT 2:

Если вы хотите его как строку (это небрежный способ, но он работает):

 String diffTime = (hours<10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds < 10 ? "0" + seconds : seconds) + " h"; 

ИЗМЕНИТЬ 3:

Если вы хотите, чтобы миллисекунды просто делали это

 long timeMS = diff % 1000; 

Затем вы можете разделить это на 1000, чтобы получить дробную часть ваших секунд.

Предполагая, что вы используете java.util.Date :

 long totalTime = endDate.getTime() - startDate.getTime(); 

Результатом будет общее время в миллисекундах.