J'ai une période JodaTime que j'ai créée à partir de deux instants DateTime. Existe-t-il un bon moyen de convertir cette période en un nombre décimal d'heures?Un moyen de convertir une période JodaTime en un nombre décimal d'heures?
Par exemple, j'ai une période qui va de 13h à 13h30 le 1er janvier 2010. Comment puis-je obtenir cette période en 1,5 heure.
Dans le passé, j'ai converti manuellement en utilisant secondes et BigDecimals, comme ceci:
int seconds = myPeriod.toStandardSeconds().getSeconds();
BigDecimal d = new BigDecimal((double) seconds/3600);
// Round to two decimals
BigDecimal correctResult = d.setScale(2, RoundingMode.HALF_DOWN);
Ce genre de se sent comme un hack, sans parler maladroit quand je commence totalisation. Il semble qu'il devrait y avoir un meilleur moyen.
Des idées? Merci
Vous devriez éviter "double". Votre approche générale est juste, il suffit d'obtenir des secondes dans un BigDecimal, puis de le diviser par BigDecimal.valueOf (3600) plutôt que de passer par une double distribution. Dans ce cas, cela ne fera peut-être pas grand-chose, mais c'est une bonne pratique. –