2016-04-05 17 views
0

Konzeptionell kann ausgehend von einem Period (P2Y1M5D) und einem LocalDate (2016-04-05) von 0 ein konkreter Duration (PT18360H) abgeleitet werden.Erhalten `Dauer` von` Zeitraum` und `LocalDate`

Was ist die beste (einfachste, kürzeste, lesbarste) Art, dies in Java zu tun?

Der erste Gedanke war Duration.between(start, start.plus(period)), aber das wirft "Nicht unterstützte Einheit: Sekunden".

Vanille Java bevorzugt, aber Antworten mit Bibliotheken (commons-lang, Guave, etc,) sind willkommen.

+0

Alle downvoters wollen einige Verbesserungen vorschlagen? – OrangeDog

+0

Glauben Sie nicht, dass es wirklich einen Weg gibt, dies zu tun. Jahre und Monate übersetzen sich nicht gut in Tage, Sekunden usw. – Savior

+0

@Pillar siehe Antwort (en) für einige Möglichkeiten :) – OrangeDog

Antwort

3

Mit java.time nur:

Duration duration = Duration.between(
    LocalDateTime.of(start, LocalTime.MIDNIGHT), 
    LocalDateTime.of(start, LocalTime.MIDNIGHT).plus(period) 
); 

Oder noch kürzer, aber mit einem weniger gut definierte Ergebnis:

Duration duration = Duration.ofDays(ChronoUnit.DAYS.between(start, start.plus(period))) 
Verwandte Themen