मुझे लगता है कि मैं दो दिनांक समय instants से बनाए जा चुके JodaTime अवधि होती है। क्या उस अवधि को दशमलव संख्या में बदलने के लिए कोई अच्छा तरीका है?एक जोडाटाइम अवधि को दशमलव संख्या में बदलने के लिए कोई भी तरीका है?
उदाहरण के लिए, मैं एक अवधि है कि 1 जनवरी, 2010 को 1:30 बजे करने के लिए दोपहर 1 बजे के से चला जाता है मैं 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.valueOf (3600) द्वारा विभाजित करें। इस उदाहरण में यदि कोई अंतर होता है तो यह अधिक नहीं हो सकता है, लेकिन यह अच्छी प्रथा है। –