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