Tengo 2 Joda LocalDateTime
objetos y la necesidad de producir un tercero que representa la diferencia entre ellos:diferencia de dos Joda LocalDateTimes
LocalDateTime start = getStartLocalDateTime();
LocalDateTime end = getEndLocalDateTime();
LocalDateTime diff = ???
La única manera que puedo imaginar es esmeradamente pasar por cada fecha/campo de hora y realiza su respectiva minus
operación:
LocalDateTime diff = end;
diff.minusYears(start.getYear());
diff.minusMonths(start.getMonthOfYear());
diff.minusDays(start.getDayOfMonth());
diff.minusHours(start.getHourOfDay());
diff.minusMinutes(start.getMinuteOfHour());
diff.minusSeconds(start.getSecondsOfMinute());
El resultado final sería simplemente llamar diff
's toString()
método y obtener algo significativo. Por ejemplo, si start.toString()
produce 2012/02/08T15: 05: 00, y end.toString()
produce 2012/02/08T16: 00: 00, entonces diff.toString()
sería la diferencia (55 minutos) y podría verse como 2012/02/08T00: 55: 00.
Y, si esto es un abuso terrible de LocalDateTime
, entonces solo necesito saber cómo tomar la diferencia de tiempo entre los dos y poner esa diferencia en un formato fácil de leer (amigable para los humanos).
¡Gracias de antemano!
me gusta Joda, pero siempre me siento abrumado. 'Período' y' Duración' suena igual, pero es bastante diferente. Veo la necesidad, pero no siempre es intuitivo. –
@MPi: De acuerdo. ¿Qué es un '' ReadablePartial''? ¿Por qué lo necesito para ver si un 'LocalDateTime' fue hace cierto tiempo? Agh! –
Porque el Período podría ser un tiempo absoluto indefinido. Por ejemplo, el Período entre las 14:35 y las 15:36, que es una "Hora del día" de lectura parcial, siempre será de 1 hora y 1 minuto. –