जावा में तिथि की तुलना कैसे करें

जावा भाषा में दो तारीखों की तुलना करने के कई तरीके हैं कार्यक्रम के भीतर एक तारीख एक पूर्णांक (लंबे) के रूप में, एक विशिष्ट समय के सापेक्ष - 1 जनवरी 1 9 70 से पारित मिलीसेकंड की संख्या के रूप में प्रदर्शित की जाती है। इस भाषा में "तिथियां" यह एक ऑब्जेक्ट है और इसलिए विभिन्न तरह के तरीकों को शामिल किया गया है। असल में, दो तिथियों की तुलना करने के लिए कोई भी तरीका वास्तव में दो संख्याओं के बीच की तुलना करता है, जो उस समय के उदाहरणों का प्रतिनिधित्व करते हैं, जो दिनांक को दर्शाते हैं।

कदम

विधि 1

विधि का उपयोग करें "compareTo"
छवि शीर्षक 4301351 1
1
विधि का उपयोग करें "compareTo"। कक्षा "तिथियां" इंटरफ़ेस लागू करता है "तुलनीय"इसलिए इस प्रकार के दो ऑब्जेक्ट (यानी दो तिथियां) सीधे विधि का उपयोग करके तुलना की जा सकती हैं "compareTo"। यदि तिथियां समान हैं, यानी वे एक ही समय तत्काल का उल्लेख करते हैं, तो विधि शून्य शून्य (0) लौटाएगा। अगर वस्तु "तिथियां" कि विधि invokes "compareTo" विधि के तर्क के रूप में उपयोग किए जाने से पहले एक तिथि का प्रतिनिधित्व करता है, तुलना शून्य से कम एक संख्यात्मक मान वापस कर देगा। इसके विपरीत, अगर वस्तु "तिथियां" कि विधि invokes "compareTo" एक तर्क के रूप में इस्तेमाल की तुलना में एक तिथि का प्रतिनिधित्व करता है, तुलना शून्य से अधिक संख्यात्मक मान वापस कर देगा। जैसा कि पहले ही उल्लेख किया गया है, अगर दो तुलनात्मक दिनांक समान हैं, तो संख्यात्मक शून्य मान दिया जाएगा।
  • छवि शीर्षक 4301351 2
    2
    दो ऑब्जेक्ट बनाएं "तिथियां"। पहला कदम, तुलना करने में सक्षम होने से पहले, उन दो ऑब्जेक्ट्स बनाने में होते हैं जिनकी तारीखों की तुलना करने के लिए होती है। ऐसा करने के एक तरीके से कक्षा का उपयोग करना है "SimpleDateFormat"। उत्तरार्द्ध आपको किसी प्रकार के ऑब्जेक्ट के भीतर कोई दिनांक डालने की अनुमति देता है "तिथियां" एक सरल और तेज तरीके से
    सरलडेटफ़ॉर्मेट एसडीएफ = नया सरलडेटफ़ॉर्मैट ("yyyy-MM-dd") - // उस वस्तु का घोषणापत्र जो उस तिथि के प्रारूप का प्रतिनिधित्व करता है जिसे हम तुलना में उपयोग करेंगे। जब हम मूल्यों में प्रवेश करने जा रहे हैं, तो हमें इस प्रारूप का सम्मान करना होगा तिथि दिनांक 1 = sdf.parse ("1995/02/23") - // दिनांक 1 को 23 फरवरी 1995 दिनांकित दिनांक 2 = एसडीएफ।"2001-10-31") - // दिनांक 2 अक्टूबर 31, 2001 दिनांक दिनांक 3 = एसडीएफ।"1995/02/23") - // तारीख 3 23 फरवरी 1995 का प्रतिनिधित्व करता है
  • छवि शीर्षक 4301351 3
    3
    प्रकार की वस्तुओं की तुलना करें "तिथियां"। निम्नलिखित कोड परिणाम है कि हम जल्द से मामलों में से प्रत्येक में मिलता है दिखाता है: इस मामले में जहां पहली तारीख सेकंड से भी कम है, तो हम दो समान तिथि होती है जब में, और जब पहली तारीख दूसरे से अधिक है।
    date1.compareTo (date2) - // date1 < date2 हमें 0date2.compareTo (date1) - // date2 से कम मूल्य मिलेगा > date1 हमें 0date1.compareTo (date3) - // date1 = date3 से अधिक मूल्य मिलेगा हम वास्तव में 0 प्राप्त करेंगे
  • विधि 2

    तरीकों का उपयोग करें "के बराबर होती है", "के बाद" और "से पहले"
    छवि शीर्षक 4301351 4
    1
    तुलनात्मक तरीकों का उपयोग करें "के बराबर होती है", "के बाद" और "से पहले"। कक्षा की वस्तुओं "तिथियां" सीधे तरीकों का उपयोग करके तुलना की जा सकती है "के बराबर होती है", "के बाद" और "से पहले"। यदि दो तुलनात्मक तिथियां उसी समय तत्काल हैं, तो विधि "के बराबर होती है" बूलियन मान वापस करेगा "झूठा"। इन विधियों के उपयोग को बेनकाब करने के लिए, हम विधि के व्यवहार का वर्णन करने के लिए उपयोग किए गए समान नमूना तिथियों का उपयोग करेंगे "compareTo"।
  • छवि शीर्षक 4301351 5
    2
    हम विधि का उपयोग करते हुए मूल्यों की तुलना करते हैं "से पहले"। निम्नलिखित कोड दोनों मामलों को दिखाता है, अर्थात, जब बूलियन मान वापस किया जाता है "झूठा" और जब यह लौटा है "झूठा"। अगर "DATE1" ऑब्जेक्ट में संग्रहीत तिथि से पहले की तारीख का प्रतिनिधित्व करता है "DATE2", विधि "से पहले" मूल्य वापस करेगा "झूठा"। अन्यथा हम बूलियन मूल्य प्राप्त करेंगे "झूठा"।
    System.out.print (date1.before (date2)) - // मान मुद्रित किया जाएगा "झूठा"System.out.print (date2.before (date2)) - // मान मुद्रित किया जाएगा "झूठा"
  • छवि शीर्षक 4301351 6
    3
    हम विधि का उपयोग करते हुए मूल्यों की तुलना करते हैं "के बाद"। निम्नलिखित कोड दोनों मामलों को दिखाता है, अर्थात, जब बूलियन मान वापस किया जाता है "झूठा" और जब यह लौटा है "झूठा"। अगर "DATE2" ऑब्जेक्ट में संग्रहीत एक की तुलना में एक तारीख का प्रतिनिधित्व करता है "DATE1", विधि "के बाद" मूल्य वापस करेगा "झूठा"। अन्यथा हम बूलियन मूल्य प्राप्त करेंगे "झूठा"।
    System.out.print (date2.after (date1)) - // मूल्य मुद्रित किया जाएगा "झूठा"System.out.print (date1.after (date2)) - // मूल्य मुद्रित किया जाएगा "झूठा"
  • छवि शीर्षक 4301351 7
    4
    हम विधि का उपयोग करते हुए मूल्यों की तुलना करते हैं "के बराबर होती है"। निम्नलिखित कोड दोनों मामलों को दिखाता है, अर्थात, जब बूलियन मान वापस किया जाता है "झूठा" और जब यह लौटा है "झूठा"। अगर दोनों ऑब्जेक्ट्स "तिथियां" तुलना की इसी तिथि, विधि का प्रतिनिधित्व करते हैं "के बराबर होती है" मूल्य वापस करेगा "झूठा"। अन्यथा हम बूलियन मूल्य प्राप्त करेंगे "झूठा"।
    System.out.print (date1.equals (date3)) - // मान मुद्रित किया जाएगा "झूठा"System.out.print (date1.equals (date2)) - // मान मुद्रित किया जाएगा "झूठा"
  • विधि 3

    कक्षा का उपयोग करें "कैलेंडर"
    छवि शीर्षक 4301351 8
    1
    कक्षा का उपयोग करें "कैलेंडर"। उत्तरार्द्ध भी तुलना तरीकों से लैस है "compareTo": "के बराबर होती है", "के बाद" और "से पहले", जो वही तरीके से काम करता है जैसा कि कक्षा के लिए वर्णित है "तिथियां"। यदि तुलना करने के लिए दिनांक किसी ऑब्जेक्ट में संग्रहीत हैं "कैलेंडर", तुलना करने के लिए उन्हें निकालने का कोई कारण नहीं है, केवल ऑब्जेक्ट के तरीकों का उपयोग करें
  • छवि शीर्षक 4301351 9
    2
    कक्षा के उदाहरण बनाएं "कैलेंडर"। कक्षा के तरीकों का इस्तेमाल करने के लिए "कैलेंडर" हमें पहले इस तत्व के उदाहरण बनाते हैं। सौभाग्य से, आप उन तिथियों का लाभ उठा सकते हैं जो हमने पहले से ही कक्षा के उदाहरणों में शामिल किए हैं "तिथियां"।



    कैलेंडर Cal1 Calendar.getInstance = () - // वस्तु घोषणा cal1Calendar CAL2 = Calendar.getInstance () - // वस्तु घोषणा cal2Calendar Calendar.getInstance सीएएल 3 = () - cal3cal1.setTime // वस्तु घोषणा (DATE1 ) - // वस्तु cal1cal2.setTime भीतर डेटा (DATE2) सम्मिलित - // वस्तु cal2cal3.setTime (DATE3 के भीतर डेटा सम्मिलित) - // वस्तु के भीतर डेटा सम्मिलित सीएएल 3
  • छवि शीर्षक 4301351 10
    3
    हम वस्तुओं की तुलना करते हैं "Cal1" और "CAL2" विधि का उपयोग करना "से पहले"। निम्नलिखित कोड स्क्रीन पर बूलियन मान को प्रिंट करेगा "झूठा", यदि दिनांक में निहित है "Cal1" यह एक में संग्रहीत एक से पहले है "CAL2"।
    System.out.print (cal1.before (cal2)) - // मूल्य स्क्रीन पर दिखाया जाएगा "झूठा"
  • छवि शीर्षक 4301351 11
    4
    हम वस्तुओं की तुलना करते हैं "Cal1" और "CAL2" विधि का उपयोग करना "के बाद"। निम्नलिखित कोड स्क्रीन पर बूलियन मान को प्रिंट करेगा "झूठा", यदि दिनांक में निहित है "Cal1" यह एक में संग्रहीत एक से पहले है "CAL2"।
    System.out.print (cal1.after (cal2)) - // मूल्य स्क्रीन पर दिखाया जाएगा "झूठा"
  • छवि शीर्षक 4301351 12
    5
    हम वस्तुओं की तुलना करते हैं "Cal1" और "CAL2" विधि का उपयोग करना "के बराबर होती है"। निम्नलिखित कोड दोनों मामलों को दिखाता है, अर्थात, जब बूलियन मान वापस किया जाता है "झूठा" और जब यह लौटा जाएगा "झूठा"। इसके लिए होने वाली स्थितियां स्पष्ट रूप से वर्ग के उदाहरणों द्वारा ग्रहण किए गए मूल्य पर निर्भर करती हैं "कैलेंडर" कि हम तुलना करेंगे। निम्न नमूना कोड को स्क्रीन पर मान प्रिंट करना चाहिए "झूठा", मूल्य के बाद "झूठा" अगली पंक्ति पर
    Println (cal1.equals (CAL3)) - // दिखाया जाएगा कि Cal1 दिया सही मूल्य cal3System.out.print (cal1.equals (CAL2)) के बराबर है - // दिखाया जाएगा कि मूल्य झूठी दिया कैल 1 कैल्सा से अलग है
  • विधि 4

    विधि का उपयोग करें "getTime"
    छवि शीर्षक 4301351 13
    1
    विधि का उपयोग करें "getTime"। जावा में, आप रिश्तेदार मान को किसी आदिम डेटा प्रकार में परिवर्तित करने के बाद सीधे दो तिथियों की तुलना कर सकते हैं (अर्थात, भाषा का डिफ़ॉल्ट डेटा प्रकार)। ऊपर वर्णित विधियों, तथापि, को प्राथमिकता दी, क्योंकि वे अधिक स्पष्ट होते हैं और इसलिए एक काम के माहौल में जो स्रोत कोड विभिन्न लोगों द्वारा प्रबंधित किया जाना चाहिए के लिए अधिक उपयुक्त हो सकता है कर रहे हैं। चूंकि तुलना आदिम डेटा के बीच होगी, यह तुलना ऑपरेटरों का सीधे उपयोग कर किया जा सकता है "<", ">" और "=="।
  • छवि शीर्षक 4301351 14
    2
    हम प्रकार की वस्तुओं बनाते हैं "लंबे समय तक" इसमें तुलना की जाने वाली तिथियां शामिल होंगी ऐसा करने के लिए, हमें ऐसे ऑब्जेक्ट में संग्रहीत मूल्य को बदलना होगा "तिथियां" प्रकार के एक पूर्णांक में प्राथमिकता में प्रयुक्त "लंबे समय तक"। सौभाग्य से, एक ऐसा तरीका है जो इस रूपांतरण को बस और जल्दी करता है: "getTime ()"।
    लंबे समय 1 = getTime (date1) - // आदिम वस्तु की घोषणा "समय 1" जिसके लिए हम मूल्य का महत्व देते हैं "DATE1"लंबे समय 2 = getTime (date2) - // हम आदिम वस्तु की घोषणा "समय 2" जिसके लिए हम मूल्य का महत्व देते हैं "DATE2"लंबे समय 3 = getTime (date3) - // आदिम वस्तु की घोषणा "time3" जिसके लिए हम मूल्य का महत्व देते हैं "DATE3"
  • छवि शीर्षक 4301351 15
    3
    चलिए देखते हैं कि पहली तारीख दूसरी से छोटी है। ऐसा करने के लिए, हम तुलना ऑपरेटर का उपयोग करेंगे "<" तारीखों से मेल खाने वाले दो पूर्णांक मूल्यों की तुलना करने के लिए "DATE1" और "DATE2"। वस्तु में संग्रहीत संख्या के बाद से "समय 1" उस वस्तु से कम है "समय 2" तार्किक संरचना की पहली शाखा में निहित संदेश मुद्रित किया जाएगा "तो-और कुछ"। निर्देश से संबंधित कोड ब्लॉक "अन्यथा" वाक्यविन्यास की शुद्धता का सम्मान करने के लिए शामिल किया गया है।
    अगर (समय 1 < समय 2) {println ("date1 दिनांक 2 से पहले है") - // इस संदेश को प्रिंट किया जाएगा वास्तव में समय 1 समय से कम है 2} और {System.out.println ("date1 दिनांक 2 से पहले नहीं है") -}
  • छवि शीर्षक 4301351 16
    4
    चलिए देखते हैं कि पहली तारीख दूसरी से अधिक है। ऐसा करने के लिए, हम तुलना ऑपरेटर का उपयोग करेंगे ">" तारीखों से मेल खाने वाले दो पूर्णांक मूल्यों की तुलना करने के लिए "DATE1" और "DATE2"। वस्तु में संग्रहीत संख्या के बाद से "समय 1" उस वस्तु से कम है "समय 2" तार्किक संरचना की पहली शाखा में निहित संदेश मुद्रित किया जाएगा "तो-और कुछ"। निर्देश से संबंधित कोड ब्लॉक "अन्यथा" वाक्यविन्यास की शुद्धता का सम्मान करने के लिए शामिल किया गया है।
    अगर (समय 2 > समय 1) {println ("तिथि 2 तिथि 1 के बाद है") - // इस संदेश को प्रिंट किया जाएगा वास्तव में समय 2 समय से अधिक है 1) और {system.out.println ("date2 तिथि 1 के बाद की तुलना में नहीं है") -}
  • छवि शीर्षक 4301351 17
    5
    चलिए देखते हैं कि दोनों तिथियां समान हैं या नहीं। ऐसा करने के लिए, हम तुलना ऑपरेटर का उपयोग करेंगे "==" तारीखों से मेल खाने वाले दो पूर्णांक मूल्यों की तुलना करने के लिए "DATE1" और "DATE2"। वस्तु में संग्रहीत संख्या के बाद से "समय 1" यह वस्तु में से एक के समान है "time3" तार्किक संरचना की पहली शाखा में निहित संदेश मुद्रित किया जाएगा "तो-और कुछ"। अगर कार्यक्रम स्क्रीन पर दूसरे संदेश को प्रिंट करना था (यानी निर्देश में शामिल किए गए) "अन्यथा"), इसका मतलब है कि तुलना की गई दो तिथियां समान नहीं हैं
    यदि (समय 1 == समय 2) {System.out.println ("तिथियां समान हैं") -} else {println ("तिथियां अलग-अलग हैं") - // यह संदेश मुद्रित किया जाएगा क्योंकि टाइम 1 का मूल्य वास्तविक समय 2 से अलग है I
  • सामाजिक नेटवर्क पर साझा करें:

    संबद्ध

    © 2011—2022 GnuMani.com