जावा प्रोग्रामिंग भाषा में दो तिथियों की तुलना करने के कई तरीके हैं। कंप्यूटर में, एक तिथि को समय की इकाइयों में एक संख्या (डेटा प्रकार लंबा) द्वारा दर्शाया जाता है - अर्थात, मिलीसेकंड की संख्या जो 1 जनवरी, 1970 के बाद से बीत चुकी है। जावा में, दिनांक एक वस्तु है, जिसका अर्थ है कि यह है तुलना करने के कई तरीके। दो तिथियों की तुलना करने के लिए इस्तेमाल की जाने वाली कोई भी विधि अनिवार्य रूप से दो तिथियों की समय इकाइयों की तुलना कर रही है।
कदम
विधि 1 में से 4: तुलना का उपयोग करना
चरण 1. तुलना करें का उपयोग करें।
दिनांक वस्तु तुलनात्मक रूप से लागू होती है इसलिए 2 तिथियों की तुलना एक दूसरे के साथ सीधे तुलना विधि से की जा सकती है। यदि समय इकाइयों में दोनों तिथियों की संख्या समान है, तो विधि शून्य लौटाती है। यदि दूसरी तारीख पहली से कम है, तो शून्य से कम का मान लौटाया जाता है। यदि दूसरी तिथि पहली से अधिक है, तो विधि शून्य से अधिक मान लौटाती है। यदि दोनों तिथियां समान हैं, तो विधि एक शून्य मान लौटाएगी।
चरण 2. एकाधिक दिनांक ऑब्जेक्ट बनाएँ।
तुलना करने से पहले आपको अनेक दिनांक ऑब्जेक्ट बनाने होंगे। ऐसा करने का सबसे आसान तरीका SimpleDateFormat वर्ग का उपयोग करना है। यह वर्ग इनपुट दिनांक मान को दिनांक ऑब्जेक्ट में परिवर्तित करना आसान बनाता है।
SimpleDateFormat sdf = नया SimpleDateFormat ("yyyy-MM-dd")। किसी नए ''ऑब्जेक्ट दिनांक'' में मान घोषित करने के लिए, दिनांक बनाते समय उसी दिनांक प्रारूप का उपयोग करें। दिनांक दिनांक 1 = sdf.parse ("1995-02-23"); // दिनांक १ फरवरी २३, १९९५ है दिनांक दिनांक २ = sdf.parse ("२००१-१०-३१"); // दिनांक २ अक्टूबर ३१, २००१ है दिनांक दिनांक ३ = sdf.parse ("१९९५-०२-२३"); // दिनांक ३ फरवरी २३, १९९५ है
चरण 3. दिनांक वस्तुओं की तुलना करें।
निम्न कोड आपको प्रत्येक मामले के लिए उदाहरण दिखाएगा -- इससे कम, बराबर, और इससे बड़ा।
date1.compareTo(date2); // date1 < date2, 0 date2.compareTo(date1) से कम का मान देता है; // date2 > date1, 0 date1.compareTo(date3) से बड़ा मान देता है; // date1 = date3, इसलिए यह कंसोल पर 0 आउटपुट करेगा
विधि 2 का 4: बराबर, बाद और पहले का उपयोग करना
चरण 1. बराबर, बाद और पहले का उपयोग करें।
तिथियों की तुलना बराबर, बाद और पहले विधियों का उपयोग करके की जा सकती है। यदि दो तिथियों का समय में समान मान है, तो बराबर विधि सत्य लौटाती है। निम्न उदाहरण तुलना करने के तरीके के उदाहरण में बनाई गई दिनांक वस्तु का उपयोग करेगा।
चरण 2. पहले की विधि से तुलना करें।
निम्न कोड एक उदाहरण केस दिखाता है जो true और false लौटाता है। यदि दिनांक 1 दिनांक 2 से पहले की तारीख है, तो पहले की विधि सही है। अन्यथा, पहले की विधि झूठी वापसी करती है।
System.out.print(date1.before(date2)); // मान प्रदर्शित करें ''सत्य'' System.out.print(date2.before(date2)); // 'गलत' मान लौटाएं
चरण 3. आफ्टर मेथड का उपयोग करके तुलना करें।
निम्न कोड एक उदाहरण केस दिखाता है जो true और false लौटाता है। यदि दिनांक 2 दिनांक 1 के बाद की तिथि है, तो बाद की विधि सही हो जाती है। अन्यथा, बाद की विधि झूठी वापसी करेगी।
System.out.print(date2.after(date1)); // मान ''सत्य'' प्रदर्शित करें
चरण 4. बराबर विधि से तुलना करें।
निम्न कोड एक उदाहरण केस दिखाता है जो true और false लौटाता है। यदि दोनों तिथियां समान हैं, तो समान विधि सत्य लौटाती है। अन्यथा, बराबर विधि झूठी वापसी करती है।
System.out.print(date1.equals(date3));//मान प्रदर्शित करें ''सत्य''
विधि 3 का 4: कक्षा कैलेंडर का उपयोग करना
चरण 1. कक्षा कैलेंडर का उपयोग करें।
कैलेंडर वर्ग में भी तुलना करने के लिए, बराबर, बाद में, और पहले के तरीके हैं जो उसी तरह काम करते हैं जो पहले दिनांक वर्ग के लिए वर्णित हैं। इसलिए यदि दिनांक जानकारी कक्षा कैलेंडर में संग्रहीत है, तो आपको तुलना करने के लिए केवल तिथि निकालने की आवश्यकता नहीं है।
चरण 2. कैलेंडर का एक उदाहरण बनाएँ।
कक्षा कैलेंडर में विधियों का उपयोग करने के लिए, आपको कई कैलेंडर उदाहरण बनाने होंगे। सौभाग्य से, आप पहले बनाए गए दिनांक उदाहरण के मानों का उपयोग कर सकते हैं।
कैलेंडर cal1 = Calendar.getInstance (); // cal1 कैलेंडर cal2 घोषित करें = Calendar.getInstance (); // cal2 कैलेंडर cal3 = Calendar.getInstance () घोषित करें; // cal3 cal1.setTime (दिनांक 1) घोषित करें; // तारीख को cal1 cal2.setTime(date2) में डालें; cal3.setTime (दिनांक ३);
चरण 3. पहले की विधि का उपयोग करके cal1 और cal2 की तुलना करें।
निम्नलिखित कोड tr. के मान को आउटपुट करेगा
System.out.print(cal1.before(cal2)); // मान '' सच '' लौटाएगा
चरण 4. आफ्टर विधि का उपयोग करके cal1 और cal2 की तुलना करें।
निम्नलिखित कोड झूठी वापसी करेगा क्योंकि cal1 cal2 से पहले की तारीख है।
System.out.print(cal1.after(cal2)); // 'गलत' मान लौटाएं
चरण 5. बराबर विधि का उपयोग करके cal1 और cal2 की तुलना करें।
निम्न कोड एक उदाहरण केस दिखाएगा जो true और false लौटाता है। राज्य तुलना किए जा रहे कैलेंडर उदाहरण पर निर्भर करता है। निम्नलिखित कोड अगली पंक्ति पर "सत्य", फिर "गलत" मान लौटाएगा।
System.out.println(cal1.equals(cal3)); // मान ''सत्य'' लौटाएं: cal1 == cal3 System.out.print(cal1.equals(cal2)); // मान ''गलत'' लौटाएं: cal1 != cal2
विधि ४ का ४: गेटटाइम का उपयोग करना
चरण 1. गेटटाइम का उपयोग करें।
आप दो तिथियों के समय इकाई मानों की सीधे तुलना भी कर सकते हैं, हालांकि पिछले दो तरीकों को पढ़ना आसान और बेहतर हो सकता है। इस तरह आप 2 आदिम डेटा प्रकारों की तुलना करेंगे, ताकि आप ऑपरेंड "", और "==" का उपयोग कर सकें।
चरण २। लंबी संख्या के प्रारूप में एक समय वस्तु बनाएं।
इससे पहले कि आप तिथियों की तुलना कर सकें, आपको पहले से बनाए गए दिनांक ऑब्जेक्ट से एक लंबा पूर्णांक मान बनाना होगा। सौभाग्य से, getTime() विधि यह आपके लिए करेगी।
लंबा समय 1 = गेटटाइम (दिनांक 1); // दिनांक 1 का आदिम समय 1 घोषित करें लंबे समय 2 = गेटटाइम (दिनांक 2); // दिनांक 2 का आदिम समय 2 मान घोषित करें
चरण 3. तुलना से कम प्रदर्शन करें।
इन दो पूर्णांक मानों की तुलना करने के लिए कम से कम (<) ऑपरेंड का उपयोग करें। चूँकि time1 time2 से कम है, पहला संदेश दिखाई देगा। अन्य कथन वाक्य रचना को पूरा करने के लिए शामिल किया गया है।
if(time1 <time2){ System.out.println ("तारीख 1 तारीख 2 से पहले की तारीख है"); // दिखाएगा क्योंकि time1 <time2 }else{ System.out.println("date1 date2 से पहले date नहीं है"); }
चरण 4. तुलना से बड़ा प्रदर्शन करें।
इन दो पूर्णांक मानों की तुलना करने के लिए (>) से बड़े ऑपरेंड का उपयोग करें। क्योंकि time1 time2 से बड़ा है, पहला संदेश दिखाई देगा। अन्य कथन वाक्य रचना को पूरा करने के लिए शामिल किया गया है।
if(time2 >time1){ System.out.println("date2 date1 के बाद की तारीख है"); // दिखाएगा क्योंकि time2 > time1 }else{ System.out.println("date2 date1 के बाद की तारीख नहीं है"); }
चरण 5. एक समान तुलना करें।
इन दो पूर्णांकों की तुलना करने के लिए मूल्यों की समानता (==) की जांच करने के लिए ऑपरेंड फ़ंक्शन का उपयोग करें। चूँकि time1 time3 के बराबर है, पहला संदेश दिखाई देगा। यदि प्रोग्राम प्रवाह अन्य कथन में जाता है, तो इसका अर्थ है कि दो बार का मान समान नहीं है।
if(time1 == time2){ System.out.println ("दोनों तिथियां समान हैं"); } और { System.out.println ("पहला दूसरा जैसा नहीं है"); // दिखाएगा क्योंकि time1 != time2 }