Ho un periodo JodaTime che ho creato da due istanti DateTime. C'è un buon modo per convertire quel periodo in un numero decimale di ore?Un modo per convertire un periodo JodaTime in un numero decimale di ore?
Ad esempio, ho un Periodo che va da 1pm a 1:30 pm il 1 gennaio 2010. Come posso ottenere quel Periodo come 1,5 ore.
In passato ho convertito manualmente utilizzando secondi e BigDecimals come questa:
int seconds = myPeriod.toStandardSeconds().getSeconds();
BigDecimal d = new BigDecimal((double) seconds/3600);
// Round to two decimals
BigDecimal correctResult = d.setScale(2, RoundingMode.HALF_DOWN);
Questo tipo di sente come un hack, per non parlare di imbarazzante quando inizio Periodi aggiungendo insieme. Sembra che ci dovrebbe essere un modo migliore.
Qualche idea? Grazie
Si dovrebbe evitare "doppio". Il tuo approccio generale è giusto, devi solo prima ottenere secondi in un BigDecimal e poi dividerlo per BigDecimal.valueOf (3600) piuttosto che passare attraverso un doppio cast. In questo caso potrebbe non fare molta differenza, ma è una buona pratica. –