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: Leap Motion SDK 2024, Maj
Anonim

Obstaja veliko načinov za primerjavo dveh datumov v programskem jeziku Java. V računalnikih je datum predstavljen s številom (podatkovni tip Long) v časovnih enotah - to je s številom milisekund, ki so pretekle od 1. januarja 1970. V Javi je Date objekt, kar pomeni, da ima več načinov za primerjavo. Vsaka metoda, ki se uporablja za primerjavo dveh datumov, v bistvu primerja časovne enote obeh datumov.

Korak

Metoda 1 od 4: Uporaba compareTo

4301351 1
4301351 1

Korak 1. Uporabite compareTo

Objekt Date izvaja Primerljivo, tako da se lahko dva datuma med seboj neposredno primerjata z metodo compareTo. Če imata oba datuma enako število v časovnih enotah, potem metoda vrne nič. Če je drugi datum manjši od prvega, se vrne vrednost, manjša od nič. Če je drugi datum večji od prvega, metoda vrne vrednost, večjo od nič. Če sta oba datuma enaka, bo metoda vrnila ničelno vrednost.

4301351 2
4301351 2

Korak 2. Ustvarite več objektov Date

Preden jih primerjate, morate ustvariti več objektov Date. Eden najlažjih načinov za to je uporaba razreda SimpleDateFormat. Ta razred olajša pretvorbo vnesene vrednosti datuma v objekt Date.

    SimpleDateFormat sdf = nov SimpleDateFormat ("yyyy-MM-dd"). Če želite vrednost razglasiti v novem "Object Date", pri ustvarjanju datuma uporabite isto obliko datuma. Datum datum1 = 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 Date

Naslednja koda vam bo pokazala primere za vsak primer - manjši, enak in večji od.

    date1.compareTo (date2); // date1 <date2, vrne vrednost, manjšo od 0 date2.compareTo (date1); // date2> date1, vrne vrednost večjo od 0 date1.compareTo (date3); // date1 = date3, zato bo na konzoli prikazalo 0

Metoda 2 od 4: Uporaba enakih, po in prej

4301351 4
4301351 4

Korak 1. Uporabite enako, po in prej

Datume je mogoče primerjati z uporabo enakih metod, po in pred. Če imata dva datuma isto časovno vrednost, metoda equals vrne vrednost true. V naslednjem primeru bo uporabljen predmet Date, ustvarjen v primeru metode compareTo.

4301351 5
4301351 5

Korak 2. Primerjajte s prejšnjo metodo

Naslednja koda prikazuje primer primera, ki vrne true in false. Če je datum1 datum pred datumom2, metoda before vrne true. V nasprotnem primeru metoda before vrne false.

    System.out.print (datum1.pred (datum2)); // prikaže vrednost '' true '' System.out.print (date2.before (date2)); // vrne vrednost '' false ''

4301351 6
4301351 6

Korak 3. Primerjajte po metodi after

Naslednja koda prikazuje primer primera, ki vrne true in false. Če je date2 datum po date1, metoda after vrne true. V nasprotnem primeru bo metoda after vrnila false.

    System.out.print (date2.after (date1)); // prikaže vrednost '' true '' System.out.print (date1.after (date2)); // prikaže vrednost '' false ''

4301351 7
4301351 7

Korak 4. Primerjajte z metodo equals

Naslednja koda prikazuje primer primera, ki vrne true in false. Če sta oba datuma enaka, metoda equals vrne vrednost true. V nasprotnem primeru metoda equals vrne false.

    System.out.print (date1.equals (date3)); // prikaže vrednost '' true '' System.out.print (date1.equals (date2)); // prikaže vrednost '' false ''

Metoda 3 od 4: Uporaba koledarja razredov

4301351 8
4301351 8

Korak 1. Uporabite koledar razredov

Razred Calendar ima tudi metode compareTo, equals, after in before, ki delujejo enako kot tiste, opisane prej za razred Date. Torej, če so podatki o datumu shranjeni v koledarju razredov, vam ni treba izvleči datuma samo za primerjavo.

4301351 9
4301351 9

Korak 2. Ustvarite primerek koledarja

Če želite uporabljati metode v koledarju razredov, morate ustvariti več primerkov koledarja. Na srečo lahko uporabite vrednosti iz predhodno ustvarjenega primerka Date.

    Calendar cal1 = Calendar.getInstance (); // razglasi cal1 Calendar cal2 = Calendar.getInstance (); // razglasi cal2 Calendar cal3 = Calendar.getInstance (); // razglasimo cal3 cal1.setTime (date1); // datum vnesemo v cal1 cal2.setTime (date2); cal3.setTime (date3);

4301351 10
4301351 10

Korak 3. Primerjajte cal1 in cal2 po metodi before

Naslednja koda bo prikazala vrednost tr

    System.out.print (cal1.before (cal2)); // bo vrnilo vrednost '' true ''

4301351 11
4301351 11

Korak 4. Primerjajte cal1 in cal2 z metodo after

Naslednja koda bo vrnila false, ker je cal1 datum pred cal2.

    System.out.print (cal1.after (cal2)); // vrne vrednost '' false ''

4301351 12
4301351 12

Korak 5. Primerjajte cal1 in cal2 z uporabo metode equals

Naslednja koda prikazuje primer velikega in malega, ki vrne vrednost true in false. Stanje je odvisno od primerjave koledarja. Naslednja koda bo vrnila vrednost "true", nato "false" v naslednji vrstici.

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

Metoda 4 od 4: Uporaba getTime

4301351 13
4301351 13

Korak 1. Uporabite getTime

Prav tako lahko neposredno primerjate vrednosti časovnih enot dveh datumov, čeprav sta prejšnji dve metodi lažje berljivi in zaželeni. Na ta način boste primerjali 2 primitivni vrsti podatkov, tako da lahko uporabite operande "" in "==".

4301351 14
4301351 14

Korak 2. Ustvarite časovni objekt v obliki dolge številke

Preden lahko primerjate datume, morate iz predhodno ustvarjenega predmeta Date ustvariti vrednost Long Integer. Na srečo bo metoda getTime () to storila namesto vas.

    dolgi čas1 = getTime (datum1); // razglasimo primitivni čas1 datuma1 dolgi čas2 = getTime (datum2); // razglasimo primitivno vrednost time2 za datum2

4301351 15
4301351 15

Korak 3. Izvedite manj kot primerjavo

Za primerjavo teh dveh celih vrednosti uporabite operand manjši od (<). Ker je čas1 manjši od časa2, se prikaže prvo sporočilo. Stavek else je vključen za dokončanje sintakse.

    if (time1 <time2) {System.out.println ("date1 je datum pred date2"); // bo prikazano, ker time1 <time2} else {System.out.println ("datum1 ni datum pred datumom2"); }

4301351 16
4301351 16

Korak 4. Izvedite več kot primerjavo

Za primerjavo teh dveh celih vrednosti uporabite operand večji od (>). Ker je čas1 večji od časa2, se prikaže prvo sporočilo. Stavek else je vključen za dokončanje sintakse.

    if (time2> time1) {System.out.println ("datum2 je datum po datumu1"); // bo prikazano, ker time2> time1} else {System.out.println ("datum2 ni datum po datumu1"); }

4301351 17
4301351 17

Korak 5. Izvedite primerjavo enakovredno

S funkcijo operand preverite enakost vrednosti (==) za primerjavo teh dveh celih števil. Ker je čas1 enak času3, se prikaže prvo sporočilo. Če gre tok programa v stavek else, to pomeni, da dvakrat nimata iste vrednosti.

    if (time1 == time2) {System.out.println ("oba datuma sta enaka"); } else {System.out.println ("1. ni isto kot 2."); // bo prikazano, ker je čas1! = čas2}

Priporočena: