Ich habe eine JodaTime-Periode, die ich aus zwei DateTime-Zeitpunkten erstellt habe. Gibt es eine gute Möglichkeit, diesen Zeitraum in eine Dezimalzahl von Stunden zu konvertieren?Gibt es eine Möglichkeit, eine JodaTime-Periode in eine Dezimalzahl von Stunden zu konvertieren?
Zum Beispiel habe ich einen Zeitraum, der am 1. Januar 2010 von 13.00 bis 13.30 Uhr geht. Wie kann ich diesen Zeitraum als 1.5 Stunden erhalten.
In der Vergangenheit habe ich umgewandelt manuell Sekunden und BigDecimals wie dies mit:
int seconds = myPeriod.toStandardSeconds().getSeconds();
BigDecimal d = new BigDecimal((double) seconds/3600);
// Round to two decimals
BigDecimal correctResult = d.setScale(2, RoundingMode.HALF_DOWN);
Diese Art der fühlt sich an wie ein Hack, nicht umständlich zu erwähnen, wenn ich zusammen Zugabe Zeiten beginnen. Es scheint, als sollte es einen besseren Weg geben.
Irgendwelche Ideen? Dank
Sie sollten "doppelt" vermeiden. Dein allgemeiner Ansatz ist richtig, erhalte nur Sekunden in einem BigDecimal und dividiere ihn dann mit BigDecimal.valueOf (3600), anstatt eine Doppelbesetzung zu durchlaufen. In diesem Fall macht es vielleicht keinen großen Unterschied, aber es ist eine gute Übung. –