¿Cuál es un buen método para, dado dos objetos de fecha, comparar la diferencia entre su porción de tiempo solamente, ignorando por completo año, mes y día?Compara solo la parte de tiempo de dos fechas, ignorando la parte de fecha
Es todo lo contrario de this question.
ACTUALIZACIÓN: Aquí está el código final para referencia futura:
private long differenceBetween(Date currentTime, Date timeToRun)
{
Calendar currentCal = Calendar.getInstance();
currentCal.setTime(currentTime);
Calendar runCal = Calendar.getInstance();
runCal.setTime(timeToRun);
runCal.set(Calendar.DAY_OF_MONTH, currentCal.get(Calendar.DAY_OF_MONTH));
runCal.set(Calendar.MONTH, currentCal.get(Calendar.MONTH));
runCal.set(Calendar.YEAR, currentCal.get(Calendar.YEAR));
return currentCal.getTimeInMillis() - runCal.getTimeInMillis();
}
Sí, lo hace. ¿Por qué no? – kolrie
La ironía de esta solución es que tomas dos objetos que son envoltorios delgados alrededor de una primitiva de tipo largo, invocan una API masiva y compleja para convertir objetos largos en objetos de calendario ... solo para terminar en un lugar donde estás ' volver a convertir objetos de Calendar en longs nuevamente. – scottb
@scottb - Ver [mi respuesta] (http://stackoverflow.com/questions/7676149#7676307) a continuación, que no se mezcla con los objetos 'Calendar', sino que usa solo los miembros' Date'. –