4 moduri de a compara două date în Java

Cuprins:

4 moduri de a compara două date în Java
4 moduri de a compara două date în Java

Video: 4 moduri de a compara două date în Java

Video: 4 moduri de a compara două date în Java
Video: Inkscape: How to Change Default Settings 2024, Aprilie
Anonim

Există diferite moduri de a compara datele Java. Pe plan intern, o dată este reprezentată ca un moment (lung) în timp - numărul de milisecunde care au trecut de la 1 ianuarie 1970. În Java, Data este un obiect, ceea ce înseamnă că include mai multe metode de comparație. Orice metodă de comparare a două date va compara, în esență, orele datelor.

Pași

Metoda 1 din 4: Utilizarea compareTo

4301351 1
4301351 1

Pasul 1. Folosiți compareTo

Data implementează comparabil, astfel încât două date pot fi comparate direct cu metoda compareTo. Dacă datele sunt pentru același moment, metoda returnează zero. Dacă data comparată este înainte de argumentul dată, se returnează o valoare mai mică de zero. Dacă data comparată este după argumentul dată, se returnează o valoare mai mare decât zero. Dacă datele sunt egale, se returnează o valoare 0.

4301351 2
4301351 2

Pasul 2. Creați obiectele de dată

Va trebui să creați fiecare obiect de dată înainte de a putea începe să le comparați. O modalitate de a face acest lucru este să utilizați clasa SimpleDateFormat. Permite introducerea ușoară a valorilor datei în obiectele date.

    SimpleDateFormat sdf = new SimpleDateFormat ("aaaa-MM-zz"); // Pentru declararea valorilor în obiectele date noi. utilizați același format de dată când creați date Data dată1 = sdf.parse ("23-02 1995"); // data1 este 23 februarie 1995 Data data2 = sdf.parse ("2001-10-31"); // data2 este 31 octombrie 2001 Data data3 = sdf.parse ("23-02 1995"); // data3 este 23 februarie 1995

4301351 3
4301351 3

Pasul 3. Comparați obiectele de dată

Codul de mai jos vă va arăta fiecare caz - mai mic decât, egal și mai mare decât.

    date1.compareTo (data2); // data1 <data2, returnează mai puțin de 0 date2.compareTo (data1); // data2> data1, returnează mai mult de 0 date1.compareTo (data3); // data1 = data3, deci va imprima 0 pentru consolă

Metoda 2 din 4: Folosirea lui Egal, După și Înainte

4301351 4
4301351 4

Pasul 1. Folosiți egal, după și înainte

Datele pot fi comparate cu cei egali, după și înainte de metode. Dacă două date sunt pentru același moment, metoda egală va reveni adevărată. Exemplele vor folosi date create anterior din metoda compareTo.

4301351 5
4301351 5

Pasul 2. Comparați folosind metoda before

Codul de mai jos arată un caz adevărat și fals. Dacă data1 este înainte de data2, înainte returnează adevărat. Dacă nu este, înainte returnează false.

    System.out.print (data1.before (data2)); // tipărește System.out.print adevărat (data2.before (data2)); // tipărește fals

4301351 6
4301351 6

Pasul 3. Comparați folosind metoda after

Codul de mai jos arată un caz adevărat și fals. Dacă data2 este după data1, după revine adevărat. Dacă nu este, după returnează false.

    System.out.print (date2.after (date1)); // tipărește System.out.print adevărat (date1.after (data2)); // tipărește false

4301351 7
4301351 7

Pasul 4. Comparați folosind metoda egală

Codul de mai jos arată un caz adevărat și fals. Dacă datele sunt egale, egalul returnează adevărat. Dacă nu sunt, egal este returnat fals.

    System.out.print (date1.equals (data3)); // imprimă true System.out.print (date1.equals (data2)); // imprimă false

Metoda 3 din 4: Utilizarea clasei Calendar

4301351 8
4301351 8

Pasul 1. Folosiți calendarul

Clasa calendar are și metode compareTo, egale, după și înainte, care funcționează în același mod ca cel descris mai sus pentru clasa de date. Deci, dacă informațiile despre dată sunt păstrate într-un calendar, nu este necesar să extrageți data doar pentru a efectua o comparație.

4301351 9
4301351 9

Pasul 2. Creați instanțe de Calendar

Pentru a utiliza metodele Calendar, veți avea nevoie de câteva instanțe Calendar. Din fericire, puteți doar să luați orele din instanțele Date deja create.

    Calendar cal1 = Calendar.getInstance (); // declară cal1 Calendar cal2 = Calendar.getInstance (); // declară cal2 Calendar cal3 = Calendar.getInstance (); // declară cal3 cal1.setTime (data1); // aplică data la cal1 cal2.setTime (data2); cal3.setTime (data3);

4301351 10
4301351 10

Pasul 3. Comparați cal1 și cal2 folosind înainte

Codul de mai jos ar trebui să fie tipărit adevărat, deoarece cal1 este înainte de cal2.

    System.out.print (cal1.before (cal2)); // va imprima adevărat

4301351 11
4301351 11

Pasul 4. Comparați cal1 și cal2 folosind after

Codul de mai jos ar trebui să imprime fals deoarece cal1 este înainte de cal2.

    System.out.print (cal1.after (cal2)); // tipărește fals

4301351 12
4301351 12

Pasul 5. Comparați cal1 și cal2 folosind egal

Codul de mai jos va arăta un exemplu atât de caz adevărat, cât și de caz fals. Condiția depinde de compararea instanțelor calendaristice. Codul ar trebui să imprime „adevărat”, apoi „fals” pe următoarea linie.

    System.out.println (cal1.equals (cal3)); // tipărește adevărat: cal1 == cal3 System.out.print (cal1.equals (cal2)); // tipărește false: cal1! = cal2

Metoda 4 din 4: Utilizarea getTime

4301351 13
4301351 13

Pasul 1. Folosiți getTime

De asemenea, este posibil să se compare în mod direct momentul de timp al celor două date, deși oricare dintre abordările anterioare este probabil să fie mai lizibilă și atât de preferabilă. Aceasta va fi o comparație a două tipuri de date primitive, deci se poate face cu „” și „==”.

4301351 14
4301351 14

Pasul 2. Creați obiecte de lungă durată

Înainte de a putea compara datele, trebuie să creați numere întregi lungi cu datele din obiectele Data create anterior. Din fericire, metoda getTime () va face cea mai mare parte a muncii pentru dvs.

    mult timp1 = getTime (data1); // declară ora primitivă din data1 timp lung2 = getTime (data2); // declară ora primitivă2 din data2

4301351 15
4301351 15

Pasul 3. Faceți o comparație mai puțin decât

Utilizați simbolul mai mic decât (<) pentru a compara aceste două valori întregi. Deoarece ora 1 este mai mică decât ora 2, primul mesaj ar trebui să se tipărească. Instrucțiunea else este inclusă pentru o sintaxă adecvată.

    if (time1 <time2) {System.out.println ("data1 este înainte de data2"); // va imprima de la ora1 <ora2} else {System.out.println ("data1 nu este înainte de data2"); }

4301351 16
4301351 16

Pasul 4. Faceți o comparație mai mare decât comparația

Utilizați simbolul mai mare decât (>) pentru a compara aceste două valori întregi. Deoarece ora 1 este mai mare decât ora 2, primul mesaj ar trebui să se tipărească. Instrucțiunea else este inclusă pentru o sintaxă adecvată.

    if (ora2> ora1) {System.out.println ("data2 este după data1"); // va imprima de la ora2> ora1} else {System.out.println ("data2 nu este după data1"); }

4301351 17
4301351 17

Pasul 5. Faceți o comparație egală

Folosiți simbolul pentru a verifica egalitatea (==) pentru a compara aceste două valori întregi pentru egalitate. Deoarece ora 1 este egală cu ora3, primul mesaj ar trebui să se tipărească. Dacă programul ajunge la instrucțiunea else, asta înseamnă că timpul nu este egal.

    if (time1 == time2) {System.out.println ("datele sunt egale"); } else {System.out.println ("datele nu sunt egale"); // va imprima de la ora 1! = ora2}

Recomandat: