4 načina za usporedbu dva datuma u Javi

Sadržaj:

4 načina za usporedbu dva datuma u Javi
4 načina za usporedbu dva datuma u Javi

Video: 4 načina za usporedbu dva datuma u Javi

Video: 4 načina za usporedbu dva datuma u Javi
Video: Работа с програмата Inkscape. Текст и криви 2024, Ožujak
Anonim

Postoje različiti načini za usporedbu Java datuma. Interno, datum je predstavljen kao (duga) točka u vremenu - broj milisekundi koje su protekle od 1. siječnja 1970. U Javi je Date objekt, što znači da uključuje više metoda za usporedbu. Bilo koja metoda usporedbe dva datuma bitno će usporediti vrijeme datuma.

Koraci

Metoda 1 od 4: Korištenje compareTo

4301351 1
4301351 1

Korak 1. Upotrijebite compareTo

Datum implementira Usporedivo pa se dva datuma mogu izravno usporediti s metodom compareTo. Ako su datumi za isto vrijeme, metoda vraća nulu. Ako je datum koji se uspoređuje prije argumenta datuma, vraća se vrijednost manja od nule. Ako je datum za usporedbu iza datumskog argumenta, vraća se vrijednost veća od nule. Ako su datumi jednaki, vraća se vrijednost 0.

4301351 2
4301351 2

Korak 2. Stvorite objekte datuma

Morat ćete stvoriti svaki objekt datuma prije nego što ih počnete uspoređivati. Jedan od načina za to je korištenje klase SimpleDateFormat. Omogućuje jednostavan unos vrijednosti datuma u objekte datuma.

    SimpleDateFormat sdf = novi SimpleDateFormat ("gggg-MM-dd"); // Za deklariranje vrijednosti u novim objektima datuma. koristiti isti format datuma pri stvaranju datuma Date date1 = sdf.parse ("1995-02-23"); // datum1 je 23. veljače 1995. Datum datum2 = sdf.parse ("2001-10-31"); // datum2 je 31. listopada 2001. Datum datum3 = sdf.parse ("1995-02-23"); // datum3 je 23. veljače 1995. godine

4301351 3
4301351 3

Korak 3. Usporedite objekte datuma

Kod ispod prikazuje svaki slučaj - manji od, jednak i veći od.

    date1.compareTo (date2); // date1 <date2, vraća manje od 0 date2.compareTo (date1); // date2> date1, vraća veće od 0 date1.compareTo (date3); // date1 = date3, pa će se ispisati 0 na konzoli

Metoda 2 od 4: Korištenje jednakosti, nakon i prije

4301351 4
4301351 4

Korak 1. Koristite jednako, nakon i prije

Datumi se mogu usporediti s jednakima, nakon i prije metoda. Ako su dva datuma za isto vrijeme, metoda equals vratit će se true. U primjerima će se koristiti prethodno stvoreni datumi iz metode compareTo.

4301351 5
4301351 5

Korak 2. Usporedite pomoću prethodne metode

Donji kôd prikazuje istinit i lažan slučaj. Ako je datum1 prije datuma2, prije se vraća true. Ako nije, prije se vraća false.

    System.out.print (datum1.prije (datum2)); // ispisuje pravi System.out.print (date2.before (date2)); // ispisuje false

4301351 6
4301351 6

Korak 3. Usporedite metodom after

Donji kôd prikazuje istinit i lažan slučaj. Ako je datum2 iza datuma1, poslije se vraća true. Ako nije, after vraća false.

    System.out.print (date2.after (date1)); // ispisuje pravi System.out.print (date1.after (date2)); // ispisuje false

4301351 7
4301351 7

Korak 4. Usporedite pomoću metode equals

Donji kôd prikazuje istinit i lažan slučaj. Ako su datumi jednaki, equals vraća true. Ako nisu, equals vraća false.

    System.out.print (date1.equals (date3)); // ispisuje istinito System.out.print (date1.equals (date2)); // ispisuje false

Metoda 3 od 4: Korištenje razreda Kalendar

4301351 8
4301351 8

Korak 1. Upotrijebite kalendar

Klasa kalendara također ima metode compareTo, equals, after i before koje rade na isti način kao što je gore opisano za datumsku klasu. Dakle, ako se podaci o datumu drže u kalendaru, nema potrebe izdvajati datum samo radi usporedbe.

4301351 9
4301351 9

Korak 2. Izradite instance kalendara

Za korištenje metoda kalendara trebat će vam nekoliko instanci kalendara. Srećom, možete jednostavno uzeti vremena iz već stvorenih instanci datuma.

    Kalendar cal1 = Calendar.getInstance (); // deklarira cal1 Kalendar cal2 = Calendar.getInstance (); // deklarira cal2 Kalendar cal3 = Calendar.getInstance (); // deklarira cal3 cal1.setTime (date1); // primjenjuje datum na cal1 cal2.setTime (date2); cal3.setTime (date3);

4301351 10
4301351 10

Korak 3. Usporedite cal1 i cal2 koristeći prethodno

Donji kôd trebao bi ispisati true jer je cal1 prije cal2.

    System.out.print (cal1.before (cal2)); // ispisat će se true

4301351 11
4301351 11

Korak 4. Usporedite cal1 i cal2 koristeći after

Donji kôd trebao bi ispisati false jer je cal1 prije cal2.

    System.out.print (cal1.after (cal2)); // ispisuje false

4301351 12
4301351 12

Korak 5. Usporedite cal1 i cal2 koristeći jednake vrijednosti

Kod ispod prikazuje primjer istinitog i lažnog slučaja. Uvjet ovisi o kalendarskim instancama koje se uspoređuju. Kôd bi trebao ispisati "true", zatim "false" u sljedećem retku.

    System.out.println (cal1.equals (cal3)); // ispisuje true: cal1 == cal3 System.out.print (cal1.equals (cal2)); // ispisuje false: cal1! = cal2

Metoda 4 od 4: Korištenje getTime

4301351 13
4301351 13

Korak 1. Upotrijebite getTime

Također je moguće izravno usporediti vremensku točku dva datuma, iako je vjerojatno da će bilo koji od prethodnih pristupa biti čitljiviji i toliko poželjniji. Ovo će biti usporedba dva primitivna tipa podataka, pa se to može učiniti s "" i "==".

4301351 14
4301351 14

Korak 2. Stvorite dugotrajne objekte

Prije nego što možete usporediti datume, morate stvoriti duge cijele brojeve s podacima iz prethodno stvorenih objekata Date. Srećom, metoda getTime () će odraditi većinu posla umjesto vas.

    long time1 = getTime (date1); // deklarira primitivno vrijeme1 od datuma1 dugo vrijeme2 = getTime (datum2); // proglašava primitivno vrijeme2 od datuma2

4301351 15
4301351 15

Korak 3. Učinite manje od usporedbe

Upotrijebite simbol manje od (<) za usporedbu ove dvije cijele vrijednosti. Budući da je vrijeme1 manje od vremena 2, prva bi se poruka trebala ispisati. Izjava else uključena je za pravilnu sintaksu.

    if (time1 <time2) {System.out.println ("datum1 je prije datuma2"); // ispisat će se od time1 <time2} else {System.out.println ("datum1 nije prije datuma2"); }

4301351 16
4301351 16

Korak 4. Učinite više od usporedbe

Upotrijebite simbol veći od (>) za usporedbu ove dvije cijele vrijednosti. Budući da je vrijeme1 veće od vremena 2, prva poruka bi se trebala ispisati. Izjava else uključena je za pravilnu sintaksu.

    if (time2> time1) {System.out.println ("date2 is after date1"); // ispisat će se od time2> time1} else {System.out.println ("datum2 nije nakon datuma1"); }

4301351 17
4301351 17

Korak 5. Napravite usporedbu jednako

Upotrijebite simbol za provjeru jednakosti (==) za usporedbu ove dvije cijele vrijednosti za jednakost. Budući da je vrijeme1 jednako vremenu3, prva bi se poruka trebala ispisati. Ako program dođe do naredbe else, to znači da vremena nisu jednaka.

    if (time1 == time2) {System.out.println ("datumi su jednaki"); } else {System.out.println ("datumi nisu jednaki"); // ispisat će se od time1! = time2}

Preporučeni: