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