Ho 2 Joda LocalDateTime
oggetti e la necessità di produrre un terzo che rappresenta la differenza tra loro:differenza di due Joda LocalDateTimes
LocalDateTime start = getStartLocalDateTime();
LocalDateTime end = getEndLocalDateTime();
LocalDateTime diff = ???
L'unico modo che riesco a capire è quello di passare attraverso faticosamente ogni data/campo di tempo ed esegue la sua rispettiva minus
funzionamento:
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());
Il risultato finale sarebbe semplicemente chiamare diff
s' toString()
metodo e ottenere qualcosa di significativo. Ad esempio se start.toString()
produce 2012/02/08T15: 05: 00 e end.toString()
produce 2012/02/08T16: 00: 00, quindi diff.toString()
sarebbe la differenza (55 minuti) e potrebbe apparire come 2012/02/08T00: 55: 00.
E, se si tratta di un terribile abuso di LocalDateTime
, quindi ho solo bisogno di sapere come prendere la differenza di tempo tra i due e mettere tale differenza in un formato di facile lettura (human friendly).
Grazie in anticipo!
mi piace Joda, ma io sono sempre sopraffatto. 'Periodo' e' Durata', suona allo stesso modo, ma è abbastanza diverso. Vedo il bisogno, ma non è sempre intuitivo. –
@MPi: concordato. Cos'è una 'ReadablePartial'? Perché ne ho bisogno per vedere se un 'LocalDateTime' è stato un certo periodo di tempo fa? Agh! –
Perché Periodo potrebbe essere un tempo assoluto non definito. Ad esempio, il Periodo tra le 14:35 e le 15:36, che è una "ora del giorno" parziale, sarà sempre 1 ora e 1 minuto. –