Postoji mnogo načina za usporedbu dva datuma u programskom jeziku Java. U računarima je datum predstavljen brojem (tip podataka Long) u jedinicama vremena - to jest, broju milisekundi koje su protekle od 1. januara 1970. U Javi je Datum objekt, što znači da ima nekoliko metoda za poređenje. Bilo koja metoda koja se koristi za upoređivanje dva datuma u osnovi je poređenje vremenskih jedinica dva datuma.
Korak
Metoda 1 od 4: Korištenje compareTo
Korak 1. Koristite compareTo
Objekat Date implementira Comparable pa se 2 datuma mogu međusobno uporediti direktno metodom compareTo. Ako oba datuma imaju isti broj u vremenskim jedinicama, 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 ista, metoda će vratiti nultu vrijednost.
Korak 2. Kreirajte više objekata Date
Morate stvoriti više objekata Date prije nego ih usporedite. 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 deklaraciju vrijednosti u novom '' Object Date '', koristite isti format datuma prilikom kreiranja datuma. Date date1 = sdf.parse ("1995-02-23"); // datum1 je 23. februar 1995. Datum datum2 = sdf.parse ("2001-10-31"); // datum2 je 31. oktobar 2001. Datum datum3 = sdf.parse ("1995-02-23"); // datum3 je 23. februar 1995. godine
Korak 3. Uporedite 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 prikazati 0 na konzoli
Metoda 2 od 4: Korištenje jednakosti, nakon i prije
Korak 1. Koristite jednako, nakon i prije
Datumi se mogu uporediti pomoću metoda jednaki, poslije i prije. Ako dva datuma imaju istu vrijednost u vremenu, metoda equals vraća vrijednost true. Sljedeći primjer će koristiti objekt Date kreiran u primjeru metode compareTo.
Korak 2. Uporedite sa prethodnom metodom
Sljedeći kôd prikazuje primjer slučaja koji vraća vrijednost true i false. Ako je date1 datum prije date2, metoda before vraća true. U suprotnom, metoda before vraća false.
System.out.print (date1.before (date2)); // prikazuje vrijednost '' true '' System.out.print (date2.before (date2)); // vraća vrijednost '' false ''
Korak 3. Uporedite metodom after
Sljedeći kod prikazuje primjer slučaja koji vraća true i false. Ako je date2 datum nakon date1, metoda after vraća true. U suprotnom, metoda after će se vratiti false.
System.out.print (date2.after (date1)); // prikazuje vrijednost '' true '' System.out.print (date1.after (date2)); // prikazuje vrijednost '' false ''
Korak 4. Uporedite sa metodom equals
Sljedeći kod prikazuje primjer slučaja koji vraća true i false. Ako su oba datuma jednaka, metoda equals vraća vrijednost true. U suprotnom, 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 časova
Korak 1. Koristite Kalendar časova
Klasa Kalendar takođe ima metode compareTo, equals, after i before koje funkcionišu 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.
Korak 2. Kreirajte 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 instance.
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);
Korak 3. Uporedite cal1 i cal2 koristeći metodu before
Sljedeći kôd će ispisati vrijednost tr
System.out.print (cal1.before (cal2)); // vratit će vrijednost '' true ''
Korak 4. Uporedite cal1 i cal2 koristeći metodu after
Sljedeći kôd će vratiti false jer je cal1 datum prije cal2.
System.out.print (cal1.after (cal2)); // vraća vrijednost '' false ''
Korak 5. Uporedite 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 će vratiti 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
Korak 1. Koristite getTime
Takođe možete direktno uporediti vrijednosti vremenskih jedinica dva datuma, iako su prethodne dvije metode lakše za čitanje i poželjnije. Na ovaj način ćete uspoređivati 2 primitivna tipa podataka, tako da možete koristiti operande "" i "==".
Korak 2. Kreirajte vremenski objekt u formatu dugog broja
Prije nego što možete usporediti datume, morate stvoriti vrijednost Long Integer iz prethodno kreiranog objekta Date. Srećom, metoda getTime () će to učiniti umjesto vas.
long time1 = getTime (date1); // deklariramo primitivno vrijeme1 datuma1 dugo vrijeme2 = getTime (datum2); // deklariramo primitive time2 vrijednost date2
Korak 3. Izvršite manje od poređenja
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 je uključena za dovršetak sintakse.
if (time1 <time2) {System.out.println ("date1 je datum prije date2"); // će se prikazati jer time1 <time2} else {System.out.println ("datum1 nije datum prije datuma2"); }
Korak 4. Izvršite bolje od poređenja
Upotrijebite operand veći od (>) za usporedbu ove dvije cijele vrijednosti. Budući da je vrijeme1 veće od vremena2, pojavit će se prva poruka. Naredba else je uključena za dovršetak sintakse.
if (time2> time1) {System.out.println ("datum2 je datum nakon datuma1"); // će se prikazati jer time2> time1} else {System.out.println ("datum2 nije datum nakon datuma1"); }
Korak 5. Izvršite poređenje jednako
Koristite funkciju operanda 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 naredbu 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}