Android Java: ¿Cómo restar dos veces?
timer subtract (2)
Si tiene cadenas, debe analizarlas en java.util.Date usando java.text.SimpleDateFormat. Algo como:
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();
Aquí diff es la cantidad de milisegundos transcurridos entre las 18:40:10 y las 19:05:15.
EDIT 1:
Encontré un método en línea para esto (en 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;
EDICION 2:
Si lo quieres como una cadena (esta es una forma descuidada, pero funciona):
String diffTime = (hours<10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds < 10 ? "0" + seconds : seconds) + " h";
EDIT 3:
Si quieres los milisegundos solo haz esto
long timeMS = diff % 1000;
Luego puedes dividir eso por 1000 para obtener la parte fraccional de tus segundos.
Utilizo algún tipo de cronómetro en mi proyecto y tengo
start time ex: 18:40:10 h
stop time ex: 19:05:15 h
Necesito un resultado de esos dos valores como el final time = stop - start
Encontré algunos ejemplos, pero todos son muy confusos.
¿Hay alguna solución simple?
Suponiendo que está utilizando java.util.Date :
long totalTime = endDate.getTime() - startDate.getTime();
El resultado será el tiempo total en milisegundos.