आधी मी दोन जावा तारखांमधील दिवसांची संख्या कशी मोजावी याबद्दल बोललो (इकडे बघा), և आता तुम्ही शिकाल तारखा कशा मिळवायच्या – तारखांमधील महिन्यांची संख्या. किंवा ते सोपे वाटू शकते, परंतु तारखांमधील महिने आणि वर्षे मोजणे इतके सोपे नाही जर आपण सर्व प्रकारच्या गैरसोयींची काळजी घेतली नाही, जसे की उन्हाळ्याची वेळ, जेव्हा दिवसा प्रकाश तास, उड्डाण सेकंद, अतिरिक्त दिवस बदलतात. लीप वर्ष. दुर्दैवाने, जेडीकेकडे अशी मानक पद्धत नाही कालावधी (दरम्यान) ही समस्या सोडवण्यापूर्वी जावा 8 पद्धती.

म्हणून जर तुम्हाला या तारखांमधील महिन्यांची संख्या և वर्षांची गणना करायची असेल तर तुमच्याकडे तीन मूलभूत पर्याय आहेत, पहिला वापर करणे कॅलेंडर: दिलेल्या तारखांमध्ये काही महिने-वर्षे शोधण्यासाठी आपली पद्धत लिहिण्याचा धडा, दुसरा जोडा-टाइम लायब्ररी वापरणे आणि तिसरा पर्याय जावा 8 वर स्विच करणे आहे.

जर तुम्ही विकासासाठी नवीन असाल तर तिसरा पर्याय सर्वोत्तम आहे, परंतु बर्‍याचदा हा विद्यमान प्रकल्पांसाठी पर्याय नसतो, त्यांच्यासाठी दुसरा पर्याय हा त्यांचा सर्वोत्तम पैज असतो. जोडा-टाईम लायब्ररी तयार करताच जोडा, मागे बसा, आराम करा आणि जोडाला तुमच्यासाठी मोठा भार वाहू द्या.

पहिला पर्याय कदाचित सफाई कामगारांना आकर्षक वाटेल ज्याला ओपन सोर्स लायब्ररी असणे आवडत नाही – फक्त जेडीकेवर अवलंबून आहे परंतु ते योग्य करणे कठीण वाटते – नोंदणी करण्यासाठी बर्‍याच अनुभवाची आवश्यकता असेल.

या लेखात, मी तुम्हाला जावाच्या दोन तारखांमधील महिने -वर्षांची संख्या शोधण्याचे तीनही मार्ग दाखवेन. या प्रत्येक पर्यायामध्ये किती प्रयत्न करावे लागतील – प्रत्येक पर्यायाचे फायदे आणि तोटे काय आहेत याची तुम्ही स्वतः तुलना करू शकता.

बीटीडब्ल्यू, जर तुम्ही जावा 8 मध्ये जोडलेल्या नवीन तारीख-वेळ API शी परिचित नसल्यास, मी तुम्हाला सर्वसमावेशक, अद्ययावत जावा अभ्यासक्रम घेण्याची सूचना देतो. जावा मास्टरक्लास पूर्ण करा उडेमी वर. हे देखील खूप परवडणारे आहे, आपण ते उडेमीच्या विक्रीतून फक्त $ 10 मध्ये खरेदी करू शकता, जे कधीकधी घडते.

“त्या तारखांमधील वर्षांची संख्या” तारखा कशी मिळवायची

दोन दिलेल्या जावा तारखांमधील महिने -वर्षांची संख्या मोजण्याचे माझे तीन मार्ग येथे आहेत. पहिला दृष्टिकोन कॅलेंडर वापरतो – ते जेडीके 1.4, जेडीके 1.5, जेडीके 1.6, जेडीके 1.7 -जेडीके 1.8 वर कार्य करेल कारण कॅलेंडर प्रथम जेडीके 4 मध्ये जोडले गेले.

दुसरा दृष्टिकोन जोडा-टाइम लायब्ररी वापरतो, ज्यासाठी जावा 5 आवश्यक आहे, म्हणून ते जेडीके 1.5 वरील कोणत्याही जावा आवृत्तीवर चालते. तसेच इतर कोणतेही अवलंबित्व नाही. तिसऱ्या दृष्टिकोनासाठी JDK 8 वर श्रेणीसुधारित करणे आवश्यक आहे.

1. कॅलेंडर वापरणे.

वापरून दोन जावा तारखांमधील महिने -वर्षांची संख्या शोधण्यासाठी येथे संपूर्ण कोड आहे: java.util.Calendar: श्रेणी: हे वापरते: ग्रेगोरियन कॅलेंडर, जे आपण सर्व आपल्या दैनंदिन जीवनात वापरतो. आपल्याला हे लक्षात ठेवावे लागेल की कॅलेंडरमध्ये महिना शून्यापासून सुरू होतो, म्हणजेच पहिल्या महिन्यापासून, जानेवारी शून्याइतका असतो.

 // Using Calendar - calculating number of months between two dates  
        Calendar birthDay = new GregorianCalendar(1955, Calendar.MAY, 19);
        Calendar today = new GregorianCalendar();
        today.setTime(new Date());
        
        int yearsInBetween = today.get(Calendar.YEAR) 
                                - birthDay.get(Calendar.YEAR);
        int monthsDiff = today.get(Calendar.MONTH) 
                                - birthDay.get(Calendar.MONTH);
        long ageInMonths = yearsInBetween*12 + monthsDiff;
        long age = yearsInBetween;
        
        System.out.println("Number of months since James gosling born : "
                + ageInMonths);
        
        System.out.println("Sir James Gosling's age : " + age);

साधक:
1) तृतीय पक्ष ग्रंथालयाची गरज नाही.

बाधक.
1) वापरण्यास कठीण, अंतर्ज्ञानी नाही

जर तुम्हाला कॅलेंडर वर्गाबद्दल अधिक जाणून घ्यायचे असेल तर ते कसे वापरावे, कृपया पहा मूलभूत जावा खंड 1- मूलभूत के एस होर्स्टमन यांनी प्रकाशित केले.

2. जोडा-टाइम वापरणे.

जोडा-टाइम लायब्ररीद्वारे या समस्येचे आमचे दुसरे समाधान येथे आहे. या वेळी आम्ही लोकलडेट क्लास वापरतो, जे जेडीके 8 लोकल डेट सारखे आहे, जे वेळ घटकाशिवाय फक्त एक तारीख दर्शवते.

एकदा तुमच्याकडे LocalDate झाल्यावर तुम्ही हे वापरू शकता: महिने (महिने) () आणि Years.yearsBetween () दोन तारखांमधील महिने -वर्षे मोजण्यासाठी जावाची पद्धत.

LocalDate jamesBirthDay = new LocalDate(1955, 5, 19);
LocalDate now = new LocalDate(2015, 7, 30);
        
int monthsBetween = Months.monthsBetween(jamesBirthDay, now).getMonths();
int yearsBetween = Years.yearsBetween(jamesBirthDay, now).getYears();
        
System.out.println("Month since father of Java born : " 
                    + monthsBetween);
System.out.println("Number of years since father of Java born : " 
                    + yearsBetween);

साधक:
1) मजबूत आणि अचूक.
2) लीप वर्ष – उन्हाळ्याची वेळ नियंत्रित करते.
3) वापरण्यास सोपा

बाधक.
1) आपल्या प्रकल्पात तृतीय-पक्ष लायब्ररी अवलंबित्व जोडा.

3. जावा 8 वापरणे.

दोन जावा तारखांमध्ये महिने -वर्षांची संख्या मिळवण्याचा हा तिसरा मार्ग आहे. ही समस्या सोडवण्याचा हा सर्वात सोपा, सर्वात प्रमाणित मार्ग आहे, जर तुम्ही त्याचा वापर केला जावा एसई 8:.

import java.time.LocalDate;
import java.time.Month;
import java.time.Period;

/**
 * Java Program to calculate number of years and months
 */
public class Java8Demo {

    @SuppressWarnings("empty-statement")
    public static void main(String[] args) {
        LocalDate bday = LocalDate.of(1955, Month.MAY, 19);
        LocalDate today = LocalDate.now();
        
        Period age = Period.between(bday, today);
        int years = age.getYears();
        int months = age.getMonths();
        
        System.out.println("number of years: " + years);
        System.out.println("number of months: " + months);
    }

}

Output
number of years: 61
number of months: 4

साधक:
1) बाह्य ग्रंथालय अवलंबन नाही
2) लीप वर्ष – उन्हाळ्याची वेळ नियंत्रित करते

बाधक.
1) आपण जावा 8 चालवत नसल्यास आपण ते वापरू शकत नाही

तुम्हाला नवीन Java 8 Date և Hour API बद्दल अधिक जाणून घ्यायचे असल्यास, कृपया वाचा जावा एसई 8 खरोखर अधीरांसाठी आहे लेखक: के एस. जावा SE 8 ची नवीन वैशिष्ट्ये पटकन जाणून घेण्यासाठी सर्वोत्तम पुस्तकांपैकी एक.

जावा 8 मधील दोन तारखांमधील महिने -वर्षांची संख्या कशी शोधावी?

जावा 8 मध्ये तारखांचा महिना किंवा वर्षाची संख्या कशी शोधावी

तीन पद्धतींचा वापर करून दोन किंवा तीन तारखांमधील वर्ष -महिन्यांची संख्या शोधण्यासाठी आमचा नमुना कार्यक्रम येथे आहे. कोड वरील उदाहरणात दिलेल्या कोड प्रमाणेच आहे, मी त्यांना एकत्र केले आहे जेणेकरून आपण ते आपल्यामध्ये चालवू शकता ग्रहण किंवा NetBeans IDE.

import java.time.Month;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import org.joda.time.LocalDate;
import org.joda.time.Months;
import org.joda.time.Years;

/**
 * Java Program to calculate number of months between two dates
 * You will learn three ways to do this across Java version.
 * 
 * @author WINDOWS 8
 */
public class Java8Demo {
    
    public static void main(String args[]) {
      
        // Using Calendar - calculating number of months between two dates  
        Calendar birthDay = new GregorianCalendar(1955, Calendar.MAY, 19);
        Calendar today = new GregorianCalendar();
        today.setTime(new Date());
        
        int yearsInBetween = today.get(Calendar.YEAR) 
                                 - birthDay.get(Calendar.YEAR);
        int monthsDiff = today.get(Calendar.MONTH) 
                                 - birthDay.get(Calendar.MONTH);
        long ageInMonths = yearsInBetween*12 + monthsDiff;
        long age = yearsInBetween;
        
        System.out.println("Number of months since James gosling born : "
                + ageInMonths);
        
        System.out.println("Sir James Gosling's age : " + age);
        
        
        // Using Joda - number of months between dates
        LocalDate jamesBirthDay = new LocalDate(1955, 5, 19);
        LocalDate now = new LocalDate(2015, 7, 30);
        
        int monthsBetween = Months.monthsBetween(jamesBirthDay, now)
                                  .getMonths();
        int yearsBetween = Years.yearsBetween(jamesBirthDay, now)
                                  .getYears();
        
        System.out.println("Month since father of Java born : " 
                              + monthsBetween);
        System.out.println("Number of years since father of Java born : " 
                              + yearsBetween);
        
        
        // Using Java 8 - get number of months between two dates
        java.time.LocalDate bday = java.time.LocalDate.of(1955, Month.MAY, 19);
        
        
    }
}

एवढे दोन जावा तारखांमधील महिन्यांची संख्या कशी मोजावी. आपण अद्याप जावा 6 किंवा जावा 7 वर काम करत असल्यास, आपण कॅलेंडर वर्ग वापरू शकता किंवा जोडा-टाइम लायब्ररीची मदत घेऊ शकता. जर तुमच्याकडे Java 8 अपग्रेड पर्याय असेल, तर अशा मूलभूत तारीख अंकगणितासाठी Java 8 Date և Hour API जवळ काहीही नाही.

आपण जावा 8 API वापरून दिवस, महिने आणि वर्षांची संख्या शोधण्यासाठी तारखांमधील फरक मोजू शकता. लायब्ररीची आधीच चाचणी झाली असल्याने त्यावर वेळ घालवण्याची गरज नाही, आपण आपल्या व्यवसायाच्या तर्कशास्त्रावर लक्ष केंद्रित करण्यास पूर्णपणे मुक्त आहात. आपण नंतर वाचू शकता विकासकांसाठी जावा एसई 8 नवीन जावा նոր तारीख և तासाबद्दल अधिक जाणून घेण्यासाठी.