2011-02-05 3 views
12

मैं विभिन्न तरीकों को देखकर किया गया है जावा में समय स्टोर करने के लिए और मैं काफी मेरी जरूरतों के लिए सही कार्यान्वयन नहीं मिल सकता है। (: HH: MM अंत: HH: MM शुरू)भंडारण जावा में सरल घंटे/मिनट जानकारी - सबसे अच्छा अभ्यास प्रश्न

मैं हमारे पाठ्यक्रम अनुसूची के बारे में जानकारी संग्रहीत करना चाहते हैं, इस जानकारी को मुख्य रूप से कोई प्रस्थान और समाप्ति समय के होते हैं। अब मैं ऐप के पीछे अलग-अलग विचार और तर्क बनाने के लिए कोड में इस डेटा का उपयोग करूँगा।

अब मैं ग्रेगोरी कैलेंडर वर्ग जो ठीक है, लेकिन एक पाठ्यक्रम मैं सभी + समय के लिए एक डिफ़ॉल्ट दिनांक का उपयोग कर अंत में से प्रत्येक के इनपुट पर काम करता है का उपयोग कर इसे क्रियान्वित किया है के लिए, मैं तो तारीख आवेदन भर पूरी तरह से अनदेखी पर आगे बढ़ना ।

मैं बेहतर कोडिंग आदतें विकसित करने और कोशिश कर रहा हूँ सोच रहा था कि कैसे आप इस समस्या को हल करेंगे। हमारे पाठ्यक्रम में हम अच्छी प्रथाओं, OO विकास के साथ दैनिक सिर पर ठोक हो और उपकरणों में बनाया का उपयोग कर और लाइब्रेरी की जब हम कर सकते हैं, लेकिन यह ऐसी स्थिति में लागू होता है?

मैं चाहिए:

  1. अपने ही घंटे और मिनट भंडारण वर्ग सभी आवश्यक अखंडता की जाँच करता आदि के साथ मैं क्या है करने के लिए लागू करें ...
  2. स्टिक, यह बहुत लेकिन पहिया पुनर्रचना की तुलना में बेहतर नहीं है।
  3. इस आश्चर्यजनक स्वच्छ और सरल समाधान मैं अनदेखी की है और हर किसी के बारे में जानता है।

अब स्पष्ट रूप से मैं नहीं एक काले और सफेद जवाब यहाँ लेकिन एक दिशानिर्देश के अधिक कैसे इस तरह की समस्याओं के पास जाने में की उम्मीद कर रहा हूँ।

संपादित करें:

मैं मूल रूप से पोस्ट हूँ, मैं के बाद से एक खाता पंजीकृत है लेकिन वास्तव में कुछ भी नहीं भेज पाते हैं के बाद से मैं पद से जुड़ा हुआ नहीं कर रहा हूँ।

सावधानीपूर्वक विचार करने के बाद मेरा मानना ​​है कि इस जानकारी को स्टोर करने के लिए अपना स्वयं का समाधान बनाना सबसे आसान और सबसे सहज दृष्टिकोण है, जो उपकरण मौजूद हैं, वे शानदार हैं लेकिन वास्तव में मुझे आवश्यक जानकारी की तुलना में अधिक जटिल हैं और शायद अधिक फुले हुए कोड मुझे आवश्यक वस्तुओं को निकालने के लिए।

+2

आप कुछ कोड पोस्ट करना चाहते हैं कि आपका वर्तमान डिज़ाइन कैसा दिखता है। मैं जो कटौती कर सकता हूं, उससे मुझे कोई कारण नहीं दिखता कि आपको अपने जीते कार्यान्वयन को लागू करने की आवश्यकता क्यों है, हालांकि ... – posdef

+0

एक अच्छा कारण हो सकता है, उदाहरण के लिए, जब कोई वर्ग घंटे और मिनट की अनुमति नहीं देता है लेकिन कोई सेकंड नहीं होता है। इसके लिए अपनी कक्षा लिखना काफी आसान है और मौजूदा वर्गों के लिए एक अच्छा इंटरफेस के साथ यह * सबसे अच्छा समाधान हो सकता है। – maaartinus

उत्तर

0

सबसे अच्छा तरीका जोडा समय का उपयोग करना हो सकता है क्योंकि इसमें दिन के समय और डेटटाइम के बिना दिन के समय का वर्णन करने के लिए वस्तुएं होती हैं। आम तौर पर जोडा समय एक अच्छी लाइब्रेरी है, एएसपी अगर आप कक्षाओं में निर्मित कुछ भी अलग करना चाहते हैं।

7

आप शायद Joda Time पर एक नज़र रखना चाहिए। यह केवल java.util.Date या अपने स्वयं के डेटाटाइम कार्यान्वयन को लिखने से बेहतर है। जोडा टाइम का एक और प्लस बनाया गया ऑब्जेक्ट अपरिवर्तनीय है और इसमें डेटाटाइम में हेरफेर करने या डेटाटाइम चेक करने के लिए सहायक एपीआई की किस्में हैं।

+4

समय-समय पर मैं जोदा समय का उपयोग करता हूं! – Andy

2

कक्षा java.sql.Time है, जो इस उद्देश्य को पूरा कर सकता है, अगर यह पूरी तरह टूटा नहीं गया था। मैं कैलेंडर का उपयोग नहीं करता, क्योंकि यह गणना के लिए इच्छित काफी फूला हुआ वर्ग है और इसमें एक तिथि हिस्सा भी शामिल है। मैं joda time पर देखता हूं, जो सबसे अधिक संभावना है जो आपको चाहिए।

अन्यथा, मैं अपनी कक्षा के लिए जाऊंगा। यदि आप सेकेंड स्टोर नहीं करना चाहते हैं, तो आपको इसकी आवश्यकता हो सकती है।

+0

मेरी पहली कोशिश java.sql.Time के साथ थी लेकिन मैंने इसे तुरंत छोड़ दिया। मैं जोडा – shalombi

3

शायद समय का प्रतिनिधित्व करने के लिए एक int का उपयोग करने पर विचार करें।यह 0 और 1439 (दिन में मिनटों की संख्या) के बीच एक मूल्य होगा। तो दोपहर 720 (12 * 60) के रूप में प्रतिनिधित्व किया जाएगा; 9:30 बजे 570 (9 * 60 + 30) होगा, 9:30 बजे 12 9 0 (21 * 60 + 30), आदि

इसे तब कक्षा में निकालने/सेट करने के लिए आसानी से कक्षा में लपेटा जा सकता है और मिनट (हालांकि इस वर्ग को अपरिवर्तनीय बनाने पर विचार करें)।

जोडाटाइम एक उत्कृष्ट पुस्तकालय है, लेकिन संभवतया आप जो करने की कोशिश कर रहे हैं उसके लिए अधिक मात्रा में हैं।

+0

पर एक नज़र डालेगा फिर आप संख्या-समय पर कैसे परिवर्तित करेंगे? फॉर्मूला क्या होगा? –

संबंधित मुद्दे