我有一個從兩個DateTime實例創建的JodaTime週期。將該期間轉換爲十進制小時數有什麼好方法嗎?任何將JodaTime期間轉換爲十進制小時數的方法?
例如,我有一個時間段,從2010年1月1日下午1點到下午1點30分。我怎樣才能將該時間段設置爲1.5小時。
在過去,我已經使用手動秒BigDecimals的轉換像這樣:
int seconds = myPeriod.toStandardSeconds().getSeconds();
BigDecimal d = new BigDecimal((double) seconds/3600);
// Round to two decimals
BigDecimal correctResult = d.setScale(2, RoundingMode.HALF_DOWN);
這有點像一個黑客攻擊的感覺,更不用說尷尬,當我開始添加時期在一起。似乎應該有更好的方法。
任何想法? 感謝
你應該避免「雙倍」。您的一般方法是正確的,只需先在BigDecimal中獲取秒數,然後再將其除以BigDecimal.valueOf(3600),而不是通過雙重播放。在這種情況下,如果有任何區別,它可能沒有多大作用,但這是很好的做法。 – 2010-07-22 19:11:53