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: EXPORTING your Apple Photo files on your MAC - EVERYTHING YOU NEED TO KNOW! 2024, Svibanj
Anonim

Postoji mnogo načina za usporedbu dva datuma u programskom jeziku Java. U računalima je datum predstavljen brojem (tip podataka Long) u jedinicama vremena - to jest, broju milisekundi koje su protekle od 1. siječnja 1970. U Javi je Date objekt, što znači da ima nekoliko metoda za uspoređivanje. Svaka metoda koja se koristi za usporedbu dva datuma u biti je usporedba vremenskih jedinica dvaju datuma.

Korak

Metoda 1 od 4: Korištenje compareTo

4301351 1
4301351 1

Korak 1. Upotrijebite compareTo

Objekt Date implementira Comparable pa se 2 datuma mogu međusobno usporediti izravno metodom compareTo. Ako oba datuma imaju isti broj u vremenskim jedinicama, tada metoda vraća nulu. Ako je drugi datum manji od prvog, vraća se vrijednost manja od nule. Ako je drugi datum veći od prvog, metoda vraća vrijednost veću od nule. Ako su oba datuma jednaka, metoda će vratiti nultu vrijednost.

4301351 2
4301351 2

Korak 2. Izradite više objekata Date

Prije usporedbe morate stvoriti više objekata Date. Jedan od najjednostavnijih načina za to je korištenje klase SimpleDateFormat. Ova klasa olakšava pretvaranje vrijednosti datuma unosa u objekt Date.

    SimpleDateFormat sdf = novi SimpleDateFormat ("gggg-MM-dd"). Za deklariranje vrijednosti u novom '' Object Date '', koristite isti format datuma prilikom stvaranja datuma. Datum datum1 = 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 Date

Sljedeći kôd pokazat će vam primjere za svaki slučaj - manji od, jednaki i veći od.

    date1.compareTo (date2); // date1 <date2, vraća vrijednost manju od 0 date2.compareTo (date1); // date2> date1, vraća vrijednost veću od 0 date1.compareTo (date3); // date1 = date3, pa će 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 pomoću metoda jednaki, poslije i prije. Ako dva datuma imaju istu vrijednost u vremenu, metoda equals vraća vrijednost true. Sljedeći će primjer koristiti objekt Date kreiran u primjeru metode compareTo.

4301351 5
4301351 5

Korak 2. Usporedite s prethodnom metodom

Sljedeći kôd prikazuje primjer slučaja koji vraća true i false. Ako je date1 datum prije date2, metoda before vraća true. U suprotnom, metoda before vraća false.

    System.out.print (datum1.prije (datum2)); // prikazuje vrijednost '' true '' System.out.print (date2.before (date2)); // vraća vrijednost '' false ''

4301351 6
4301351 6

Korak 3. Usporedite metodom after

Sljedeći kôd prikazuje primjer slučaja koji vraća true i false. Ako je date2 datum nakon date1, metoda after vraća true. U suprotnom će se metoda after vratiti false.

    System.out.print (date2.after (date1)); // prikazuje vrijednost '' true '' System.out.print (date1.after (date2)); // prikazuje vrijednost '' false ''

4301351 7
4301351 7

Korak 4. Usporedite s metodom equals

Sljedeći kôd prikazuje primjer slučaja koji vraća true i false. Ako su oba datuma jednaka, metoda equals vraća vrijednost true. Inače, metoda equals vraća false.

    System.out.print (date1.equals (date3)); // prikazuje vrijednost '' true '' System.out.print (date1.equals (date2)); // prikazuje vrijednost '' false ''

Metoda 3 od 4: Korištenje kalendara razreda

4301351 8
4301351 8

Korak 1. Upotrijebite Kalendar razreda

Klasa Kalendar također ima metode compareTo, equals, after i before koje rade isto kao i one opisane ranije za klasu Date. Dakle, ako su podaci o datumu pohranjeni u kalendaru razreda, ne morate izdvajati datum samo radi usporedbe.

4301351 9
4301351 9

Korak 2. Izradite instancu kalendara

Da biste koristili metode u Kalendaru razreda, morate stvoriti više instanci Kalendara. Srećom, možete koristiti vrijednosti iz prethodno kreirane instance Date.

    Kalendar cal1 = Calendar.getInstance (); // proglašava cal1 Kalendar cal2 = Calendar.getInstance (); // proglašava cal2 Kalendar cal3 = Calendar.getInstance (); // proglašava cal3 cal1.setTime (date1); // stavlja datum u cal1 cal2.setTime (date2); cal3.setTime (date3);

4301351 10
4301351 10

Korak 3. Usporedite cal1 i cal2 koristeći prethodnu metodu

Sljedeći kôd će ispisati vrijednost tr

    System.out.print (cal1.before (cal2)); // vratit će vrijednost "true"

4301351 11
4301351 11

Korak 4. Usporedite cal1 i cal2 pomoću metode after

Sljedeći će kôd vratiti false jer je cal1 datum prije cal2.

    System.out.print (cal1.after (cal2)); // vraća vrijednost '' false ''

4301351 12
4301351 12

Korak 5. Usporedite cal1 i cal2 koristeći metodu equals

Sljedeći kôd pokazat će primjer slučaja koji vraća true i false. Stanje ovisi o instanci kalendara koja se uspoređuje. Sljedeći kôd vratit će vrijednost "true", a zatim "false" u sljedećem retku.

    System.out.println (cal1.equals (cal3)); // vraća vrijednost '' true '': cal1 == cal3 System.out.print (cal1.equals (cal2)); // vraća vrijednost '' false '': cal1! = cal2

Metoda 4 od 4: Korištenje getTime

4301351 13
4301351 13

Korak 1. Upotrijebite getTime

Također možete izravno usporediti vrijednosti vremenskih jedinica dvaju datuma, iako su prethodne dvije metode lakše za čitanje i poželjnije. Na ovaj ćete način uspoređivati 2 primitivna tipa podataka, pa možete koristiti operande "" i "==".

4301351 14
4301351 14

Korak 2. Izradite vremenski objekt u formatu dugog broja

Prije nego što možete usporediti datume, morate stvoriti vrijednost Long Integer iz prethodno stvorenog objekta Date. Srećom, metoda getTime () će to učiniti umjesto vas.

    long time1 = getTime (date1); // deklariramo primitivno vrijeme1 datuma1 dugo vrijeme2 = getTime (datum2); // proglasiti primitive time2 vrijednost date2

4301351 15
4301351 15

Korak 3. Izvedite manje od usporedbe

Upotrijebite operand manji od (<) za usporedbu ove dvije cijele vrijednosti. Budući da je vrijeme1 manje od vremena2, pojavit će se prva poruka. Naredba else uključena je za dovršetak sintakse.

    if (time1 <time2) {System.out.println ("date1 je datum prije date2"); // prikazat će se jer time1 <time2} else {System.out.println ("datum1 nije datum prije datuma2"); }

4301351 16
4301351 16

Korak 4. Izvedite više od usporedbe

Za usporedbu ove dvije vrijednosti cijelog broja upotrijebite operand veći od (>). Budući da je vrijeme1 veće od vremena2, pojavit će se prva poruka. Naredba else uključena je za dovršetak sintakse.

    if (time2> time1) {System.out.println ("datum2 je datum nakon datuma1"); // prikazat će se jer time2> time1} else {System.out.println ("datum2 nije datum nakon datuma1"); }

4301351 17
4301351 17

Korak 5. Izvršite usporedbu jednaki

Upotrijebite funkciju operand za provjeru jednakosti vrijednosti (==) za usporedbu ova dva cijela broja. Budući da je vrijeme1 jednako vremenu3, pojavit će se prva poruka. Ako tok programa ide u izraz else, to znači da dva puta nemaju istu vrijednost.

    if (time1 == time2) {System.out.println ("oba datuma su ista"); } else {System.out.println ("Prvi nije isti kao drugi"); // prikazat će se jer vrijeme1! = vrijeme2}

Preporučeni: