4 načini za primerjavo dveh datumov v Javi

Kazalo:

4 načini za primerjavo dveh datumov v Javi
4 načini za primerjavo dveh datumov v Javi

Video: 4 načini za primerjavo dveh datumov v Javi

Video: 4 načini za primerjavo dveh datumov v Javi
Video: 1001 путь — Бруно Грёнинг в дневниках молодых людей — весь фильм 2024, April
Anonim

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

4301351 1
4301351 1

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.

4301351 2
4301351 2

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

4301351 3
4301351 3

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

4301351 4
4301351 4

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.

4301351 5
4301351 5

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

4301351 6
4301351 6

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

4301351 7
4301351 7

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

4301351 8
4301351 8

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.

4301351 9
4301351 9

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);

4301351 10
4301351 10

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

4301351 11
4301351 11

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

4301351 12
4301351 12

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

4301351 13
4301351 13

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 "==".

4301351 14
4301351 14

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

4301351 15
4301351 15

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"); }

4301351 16
4301351 16

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"); }

4301351 17
4301351 17

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}

Priporočena: