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
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ă.
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
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
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.
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 ''
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”
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
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.
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);
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"
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 ''
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
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 "==".
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
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"); }
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”); }
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}