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: Your First Java Program | Java | Tutorial 3 2024, Mai
Anonim

Există multe modalități de a compara două date în limbajul de programare Java. În computere, o dată este reprezentată de un număr (tipul de date Long) în unități de timp - adică numărul de milisecunde care au trecut de la 1 ianuarie 1970. În Java, Data este un obiect, ceea ce înseamnă că are mai multe metode pentru a face comparații. Orice metodă utilizată pentru a compara două date compară în esență unitățile de timp ale celor două date.

Etapa

Metoda 1 din 4: Utilizarea compareTo

4301351 1
4301351 1

Pasul 1. Folosiți compareTo

Obiectul Date implementează comparabil, astfel încât 2 date pot fi comparate între ele direct cu metoda compareTo. Dacă ambele date au același număr în unități de timp, atunci metoda returnează zero. Dacă a doua dată este mai mică decât prima, se returnează o valoare mai mică de zero. Dacă a doua dată este mai mare decât prima, metoda returnează o valoare mai mare decât zero. Dacă ambele date sunt aceleași, atunci metoda va returna o valoare nulă.

4301351 2
4301351 2

Pasul 2. Creați mai multe obiecte Date

Trebuie să creați mai multe obiecte Date înainte de a le compara. Una dintre cele mai simple modalități de a face acest lucru este să utilizați clasa SimpleDateFormat. Această clasă face ușoară conversia unei date de intrare într-un obiect Date.

    SimpleDateFormat sdf = nou SimpleDateFormat ("aaaa-MM-zz"). Pentru a declara o valoare într-o nouă „Data obiectului”, utilizați același format de dată când creați data. Data data1 = 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 Date

Următorul cod vă va arăta exemple pentru fiecare caz - mai mic decât, egal și mai mare decât.

    date1.compareTo (data2); // data1 <data2, returnează o valoare mai mică de 0 date2.compareTo (data1); // data2> data1, returnează o valoare mai mare de 0 date1.compareTo (data3); // data1 = data3, deci va afișa 0 pe consolă

Metoda 2 din 4: Folosirea egalului, după și înainte

4301351 4
4301351 4

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

Datele pot fi comparate folosind metode egale, după și înainte. Dacă două date au aceeași valoare în timp, metoda egală returnează adevărat. Următorul exemplu va utiliza obiectul Date creat în metoda exemplu compareTo.

4301351 5
4301351 5

Pasul 2. Comparați cu metoda anterioară

Următorul cod arată un exemplu de caz care returnează adevărat și fals. Dacă data1 este o dată anterioară datei2, metoda before returnează true. În caz contrar, metoda before returnează false.

    System.out.print (data1.before (data2)); // afișează valoarea „adevărat” System.out.print (data2.before (data2)); // returnează valoarea '' false ''

4301351 6
4301351 6

Pasul 3. Comparați folosind metoda after

Următorul cod arată un exemplu de caz care returnează adevărat și fals. Dacă data2 este data după data1, metoda after returnează true. În caz contrar, metoda after va reveni la fals.

    System.out.print (date2.after (date1)); // afișați valoarea „true” System.out.print (date1.after (date2)); // afișați valoarea „false”

4301351 7
4301351 7

Pasul 4. Comparați cu metoda egală

Următorul cod arată un exemplu de caz care returnează adevărat și fals. Dacă ambele date sunt egale, metoda egală returnează adevărat. În caz contrar, metoda egală returnează fals.

    System.out.print (date1.equals (date3)); // afișează valoarea „true” System.out.print (date1.equals (date2)); // afișează valoarea „false”

Metoda 3 din 4: Utilizarea Calendarului clasei

4301351 8
4301351 8

Pasul 1. Utilizați Calendarul clasei

Clasa Calendar are, de asemenea, metode compareTo, egale, după și înainte, care funcționează la fel ca cele descrise anterior pentru clasa Date. Deci, dacă informațiile despre dată sunt stocate într-un Calendar de clase, nu este nevoie să extrageți data doar pentru a face o comparație.

4301351 9
4301351 9

Pasul 2. Creați o instanță a Calendarului

Pentru a utiliza metode în Calendarul clasei, trebuie să creați mai multe instanțe Calendar. Din fericire, puteți utiliza valorile dintr-o instanță Date creată anterior.

    Calendar cal1 = Calendar.getInstance (); // declara cal1 Calendar cal2 = Calendar.getInstance (); // declara cal2 Calendar cal3 = Calendar.getInstance (); // declara cal3 cal1.setTime (data1); // puneți data în cal1 cal2.setTime (data2); cal3.setTime (data3);

4301351 10
4301351 10

Pasul 3. Comparați cal1 și cal2 folosind metoda anterioară

Următorul cod va afișa valoarea tr

    System.out.print (cal1.before (cal2)); // va returna valoarea "adevărat"

4301351 11
4301351 11

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

Următorul cod va reveni fals deoarece cal1 este data dinaintea cal2.

    System.out.print (cal1.after (cal2)); // returnează valoarea '' false ''

4301351 12
4301351 12

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

Următorul cod va arăta un exemplu de caz care returnează adevărat și fals. Starea depinde de compararea instanței Calendar. Următorul cod va returna valoarea „true”, apoi „false” pe următoarea linie.

    System.out.println (cal1.equals (cal3)); // returnează valoarea „adevărat”: cal1 == cal3 System.out.print (cal1.equals (cal2)); // returnează valoarea '' false '': cal1! = cal2

Metoda 4 din 4: Utilizarea getTime

4301351 13
4301351 13

Pasul 1. Folosiți getTime

De asemenea, puteți compara în mod direct valorile unității de timp a două date, deși cele două metode anterioare pot fi mai ușor de citit și preferabile. În acest fel veți compara 2 tipuri de date primitive, astfel încât să puteți utiliza operanzii "" și "==".

4301351 14
4301351 14

Pasul 2. Creați un obiect de timp în format de număr lung

Înainte de a putea compara datele, trebuie să creați o valoare Long Integer din obiectul Data creat anterior. Din fericire, metoda getTime () o va face pentru tine.

    mult timp = getTime (data1); // declara timp primitiv1 din data1 mult timp2 = getTime (data2); // declarați valoarea primitivă a timpului2 a datei2

4301351 15
4301351 15

Pasul 3. Efectuați o comparație mai mică decât

Folosiți operandul mai mic de (<) pentru a compara aceste două valori întregi. Deoarece ora1 este mai mică decât ora2, va apărea primul mesaj. Instrucțiunea else este inclusă pentru a finaliza sintaxa.

    if (ora1 <ora2) {System.out.println ("data1 este data anterioară datei 2"); // se va afișa deoarece ora1 <ora2} altfel {System.out.println ("data1 nu este o dată înainte de data2"); }

4301351 16
4301351 16

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

Folosiți operandul mai mare decât (>) pentru a compara aceste două valori întregi. Deoarece ora1 este mai mare decât ora2, va apărea primul mesaj. Instrucțiunea else este inclusă pentru a finaliza sintaxa.

    if (ora2> ora1) {System.out.println ("data2 este data după data1"); // se va afișa deoarece ora2> ora1} altceva {System.out.println („data2 nu este data după data1”); }

4301351 17
4301351 17

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

Utilizați funcția de operand pentru a verifica egalitatea valorilor (==) pentru a compara aceste două numere întregi. Deoarece ora 1 este egală cu ora3, va apărea primul mesaj. Dacă fluxul programului intră în instrucțiunea else, înseamnă că cele două ori nu au aceeași valoare.

    if (time1 == time2) {System.out.println ("ambele date sunt aceleași"); } else {System.out.println ("Primul nu este același cu al doilea"); // se va afișa deoarece time1! = time2}

Recomandat: