Tengo un período JodaTime que he creado a partir de dos instantes de DateTime. ¿Hay una buena manera de convertir ese Período en un número decimal de horas?¿Alguna manera de convertir un Período JodaTime a un número decimal de horas?
Por ejemplo, tengo un Período que va de la 1pm a la 1:30 pm del 1 de enero de 2010. ¿Cómo puedo obtener ese Período como 1.5 horas.
En el pasado me he convertido manualmente usando segundos y BigDecimals como este:
int seconds = myPeriod.toStandardSeconds().getSeconds();
BigDecimal d = new BigDecimal((double) seconds/3600);
// Round to two decimals
BigDecimal correctResult = d.setScale(2, RoundingMode.HALF_DOWN);
Este tipo de se siente como un corte, por no mencionar incómodo cuando comienzo Períodos sumando. Parece que debería haber una mejor manera.
¿Alguna idea? Gracias
Debe evitar "doble". Su enfoque general es correcto, solo obtenga segundos en un BigDecimal primero y luego divídalo por BigDecimal.valueOf (3600) en lugar de pasar por un doble molde. En este caso, puede que no haya mucha diferencia, pero es una buena práctica. –