Datume Java lahko primerjate na različne načine. Interno je datum predstavljen kot (dolga) točka v času - število milisekund, ki so pretekle od 1. januarja 1970. V Javi je Date objekt, kar pomeni, da vključuje več metod za primerjavo. Vsaka metoda primerjave dveh datumov bo v bistvu primerjala datume.
Koraki
Metoda 1 od 4: Uporaba compareTo
Korak 1. Uporabite compareTo
Datum izvaja Primerljivo, zato je mogoče dva datuma neposredno primerjati z metodo compareTo. Če sta datuma za isti čas, metoda vrne nič. Če je primerjani datum pred argumentom datuma, se vrne vrednost, manjša od nič. Če je datum za primerjavo za argumentom datum, se vrne vrednost večja od nič. Če so datumi enaki, se vrne vrednost 0.
Korak 2. Ustvarite objekte datuma
Preden jih začnete primerjati, morate ustvariti vsak predmet datuma. Eden od načinov za to je uporaba razreda SimpleDateFormat. Omogoča enostaven vnos datumskih vrednosti v datumske objekte.
SimpleDateFormat sdf = nov SimpleDateFormat ("yyyy-MM-dd"); // Za razglasitev vrednosti v novih datumskih objektih. pri ustvarjanju datumov uporabite enako obliko datuma Date date1 = sdf.parse ("1995-02-23"); // datum1 je 23. februar 1995 Datum datum2 = sdf.parse ("2001-10-31"); // datum2 je 31. oktober 2001 Datum datum3 = sdf.parse ("1995-02-23"); // datum3 je 23. februar 1995
Korak 3. Primerjajte objekte datuma
Spodnja koda vam bo pokazala vsak primer - manjši, enak in večji od.
date1.compareTo (date2); // date1 <date2, vrne manj kot 0 date2.compareTo (date1); // date2> date1, vrne več kot 0 date1.compareTo (date3); // date1 = date3, zato bo na konzolo natisnjeno 0
Metoda 2 od 4: Uporaba enakih, po in prej
Korak 1. Uporabite enako, potem in prej
Datume je mogoče primerjati z enakimi metodami po metodah po in pred. Če sta dva datuma za isti čas, bo metoda equals vrnila vrednost true. V primerih bodo uporabljeni predhodno ustvarjeni datumi iz metode compareTo.
Korak 2. Primerjajte po predhodni metodi
Spodnja koda prikazuje resnične in napačne primere. Če je datum1 pred datumom2, pred vrne true. Če ni, pred vrne false.
System.out.print (datum1.pred (datum2)); // natisne resnični System.out.print (date2.before (date2)); // natisne napačno
Korak 3. Primerjajte po metodi after
Spodnja koda prikazuje resnične in napačne primere. Če je datum2 za datumom1, potem vrne true. Če ni, po return vrne false.
System.out.print (date2.after (date1)); // natisne pravi System.out.print (date1.after (date2)); // natisne napačno
Korak 4. Primerjajte z uporabo metode equals
Spodnja koda prikazuje resnične in napačne primere. Če so datumi enaki, se vrača true. Če niso, se vrača false.
System.out.print (date1.equals (date3)); // natisne resnični System.out.print (date1.equals (date2)); // natisne napačno
Metoda 3 od 4: Uporaba razreda Koledar
Korak 1. Uporabite koledar
Koledarski razred ima tudi metode compareTo, equals, after in before, ki delujejo na enak način, kot je opisano zgoraj za razred datuma. Torej, če so podatki o datumu shranjeni v koledarju, ni treba izvleči datuma samo za primerjavo.
Korak 2. Ustvarite primerke koledarja
Za uporabo metod koledarja boste potrebovali nekaj primerkov koledarja. Na srečo lahko preprosto zgrabite čase iz že ustvarjenih primerkov Date.
Calendar cal1 = Calendar.getInstance (); // razglasi cal1 Calendar cal2 = Calendar.getInstance (); // razglasi cal2 Calendar cal3 = Calendar.getInstance (); // razglasi cal3 cal1.setTime (date1); // velja datum za cal1 cal2.setTime (date2); cal3.setTime (date3);
Korak 3. Primerjajte cal1 in cal2 z uporabo prej
Spodnja koda mora natisniti true, saj je cal1 pred cal2.
System.out.print (cal1.before (cal2)); // bo natisnjeno true
Korak 4. Primerjajte cal1 in cal2 z uporabo after
Spodnja koda mora natisniti napačno, saj je cal1 pred cal2.
System.out.print (cal1.after (cal2)); // natisne napačno
Korak 5. Primerjajte cal1 in cal2 z uporabo enakih vrednosti
Spodnja koda bo pokazala primer resničnega in napačnega primera. Pogoj je odvisen od primerjave koledarja. Koda bi morala v naslednji vrstici natisniti "true", nato "false".
System.out.println (cal1.equals (cal3)); // natisne true: cal1 == cal3 System.out.print (cal1.equals (cal2)); // natisne napačno: cal1! = cal2
Metoda 4 od 4: Uporaba getTime
Korak 1. Uporabite getTime
Možno je tudi neposredno primerjati časovno točko dveh datumov, čeprav bo kateri koli od prejšnjih pristopov verjetno bolj berljiv in tako bolj zaželen. To bo primerjava dveh primitivnih podatkovnih tipov, zato jo lahko naredimo z "" in "==".
Korak 2. Ustvarite dolgotrajne objekte
Preden lahko primerjate datume, morate ustvariti dolga cela števila s podatki iz predhodno ustvarjenih objektov Date. Na srečo bo metoda getTime () večino dela opravila namesto vas.
dolgi čas1 = getTime (datum1); // razglasi primitivni čas1 od datuma1 dolgi čas2 = getTime (datum2); // razglasi primitivni čas2 od datuma2
Korak 3. Naredite manj kot primerjavo
Za primerjavo teh dveh celobrojnih vrednosti uporabite simbol manj kot (<). Ker je čas1 manjši od časa 2, se mora prvo sporočilo natisniti. Za pravilno sintakso je vključen stavek else.
if (time1 <time2) {System.out.println ("datum1 je pred datumom2"); // bo tiskal od time1 <time2} else {System.out.println ("datum1 ni pred datumom2"); }
Korak 4. Naredite več kot primerjavo
Za primerjavo teh dveh vrednosti celih števil uporabite simbol večji od (>). Ker je čas1 večji od časa 2, se mora prvo sporočilo natisniti. Za pravilno sintakso je vključen stavek else.
if (time2> time1) {System.out.println ("datum2 je za datumom1"); // bo tiskal od time2> time1} else {System.out.println ("datum2 ni po datumu1"); }
Korak 5. Primerjajte enako
S simbolom preverite enakost (==), če želite primerjati ti dve celobrojni vrednosti za enakost. Ker je čas1 enak času3, se mora prvo sporočilo natisniti. Če program pride do stavka else, to pomeni, da časi niso enaki.
if (time1 == time2) {System.out.println ("datumi so enaki"); } else {System.out.println ("datumi niso enaki"); // natisne od time1! = time2}