Java programmeerimiskeeles saab kahte kuupäeva võrrelda mitmel viisil. Arvutites tähistab kuupäeva arv (andmetüüp Long) ajaühikutes - see tähendab millisekundite arv, mis on möödunud 1. jaanuarist 1970. Java -s on kuupäev objekt, mis tähendab, et sellel on mitu meetodit võrdlemiseks. Iga kahe kuupäeva võrdlemiseks kasutatav meetod võrdleb sisuliselt kahe kuupäeva ajaühikuid.
Samm
Meetod 1 /4: võrdluse kasutamine
Samm 1. Kasutage võrdlust
Objekt Kuupäev rakendab võrreldavat, nii et kahte kuupäeva saab võrrelda üksteisega otse võrdlusmeetodi abil. Kui mõlemal kuupäeval on ajaühikutes sama arv, tagastab meetod nulli. Kui teine kuupäev on väiksem kui esimene, tagastatakse väärtus, mis on väiksem kui null. Kui teine kuupäev on suurem kui esimene, tagastab meetod väärtuse, mis on suurem kui null. Kui mõlemad kuupäevad on samad, tagastab meetod nullväärtuse.
Samm 2. Looge mitu kuupäeva objekti
Enne nende võrdlemist peate looma mitu kuupäevaobjekti. Üks lihtsamaid viise selleks on klassi SimpleDateFormat kasutamine. Selle klassi abil on lihtne teisendada sisendkuupäeva väärtus kuupäevaobjektiks.
SimpleDateFormat sdf = uus SimpleDateFormat ("yyyy-MM-dd"). Uue objekti kuupäeva väärtuse deklareerimiseks kasutage kuupäeva loomisel sama kuupäevavormingut. Kuupäev kuupäev1 = sdf.parse ("1995-02-23"); // kuupäev1 on 23. veebruar 1995 Kuupäev kuupäev2 = sdf.parse ("2001-10-31"); // kuupäev2 on 31. oktoober 2001 Kuupäev kuupäev3 = sdf.parse ("1995-02-23"); // kuupäev3 on 23. veebruar 1995
Samm 3. Võrrelge kuupäeva objekte
Järgmine kood näitab teile näiteid iga juhtumi kohta - väiksem, võrdne ja suurem kui.
date1.compareTo (kuupäev2); // kuupäev1 <kuupäev2, tagastab väärtuse, mis on väiksem kui 0 date2.compareTo (date1); // kuupäev2> kuupäev1, tagastab väärtuse, mis on suurem kui 0 date1.compareTo (date3); // kuupäev1 = kuupäev3, seega väljastab see konsoolil 0
Meetod 2/4: võrdsete kasutamine, pärast ja enne
Etapp 1. Kasutage võrdseid, pärast ja enne
Kuupäevi saab võrrelda meetoditega võrdne, pärast ja enne. Kui kahel kuupäeval on ajaliselt sama väärtus, tagastab meetod võrdne tõene. Järgmises näites kasutatakse võrdlusmeetodi näites loodud objekti Kuupäev.
Samm 2. Võrrelge eelmise meetodiga
Järgmine kood näitab näitejuhtumit, mis tagastab tõese ja vale. Kui kuupäev1 on kuupäev enne kuupäeva2, tagastab meetod enne väärtust tõene. Vastasel korral tagastab meetod enne väärtust vale.
System.out.print (date1.before (date2)); // kuva väärtus '' true '' System.out.print (date2.before (date2)); // tagastab väärtuse "vale"
Samm 3. Võrrelge, kasutades järgnevat meetodit
Järgmine kood näitab näitejuhtumit, mis tagastab tõese ja vale. Kui kuupäev2 on kuupäev pärast kuupäeva1, tagastab järelmeetod tõese. Vastasel korral tagastab järelmeetod vale.
System.out.print (date2.after (date1)); // kuvage väärtus '' true '' System.out.print (date1.after (date2)); // kuvage väärtus '' false ''
Samm 4. Võrdle võrdse meetodiga
Järgmine kood näitab näitejuhtumit, mis tagastab tõese ja vale. Kui mõlemad kuupäevad on võrdsed, tagastab meetod võrdne tõese. Vastasel korral tagastab meetod võrdne vale.
System.out.print (date1.equals (date3)); // kuvage väärtus '' true '' System.out.print (date1.equals (date2)); // kuvage väärtus '' false ''
Meetod 3/4: klassikalendri kasutamine
Samm 1. Kasutage klassikalendrit
Klassis Kalender on ka meetodid CompaTo, võrdub, pärast ja enne, mis toimivad samamoodi nagu kuupäeva klassi puhul varem kirjeldatud meetodid. Seega, kui kuupäeva teave on klassikalendrisse salvestatud, ei pea te võrdluse tegemiseks kuupäeva välja võtma.
Samm 2. Looge kalendri eksemplar
Klassikalendris meetodite kasutamiseks peate looma mitu kalendri eksemplari. Õnneks saate kasutada varem loodud kuupäeva eksemplari väärtusi.
Kalender cal1 = Calendar.getInstance (); // deklareeri cal1 Kalender cal2 = Calendar.getInstance (); // deklareeri cal2 Kalender cal3 = Calendar.getInstance (); // deklareeri cal3 cal1.setTime (date1); // pane kuupäev cal1 cal2.setTime (date2); cal3.setTime (kuupäev3);
Samm 3. Võrrelge cal1 ja cal2, kasutades eelmist meetodit
Järgmine kood väljastab tr väärtuse
System.out.print (cal1.before (cal2)); // tagastab väärtuse "true"
Samm 4. Võrrelge cal1 ja cal2, kasutades järgnevat meetodit
Järgmine kood tagastab vale, sest cal1 on kuupäev enne cal2.
System.out.print (cal1.after (cal2)); // tagastab väärtuse "vale"
Samm 5. Võrrelge cal1 ja cal2, kasutades meetodit equals
Järgmine kood näitab näitejuhtumit, mis tagastab tõese ja vale. Olek sõltub võrreldavast kalendri eksemplarist. Järgmine kood tagastab väärtuse "true", seejärel järgmisel real "false".
System.out.println (cal1.equals (cal3)); // tagastab väärtuse '' true '': cal1 == cal3 System.out.print (cal1.equals (cal2)); // tagastab väärtuse '' false '': cal1! = cal2
Meetod 4/4: getTime'i kasutamine
Samm 1. Kasutage getTime'i
Samuti saate otse võrrelda kahe kuupäeva ajaühiku väärtusi, kuigi kahte eelmist meetodit võib olla lihtsam lugeda ja eelistada. Nii võrdlete kahte primitiivset andmetüüpi, nii et saate kasutada operande "" ja "==".
Samm 2. Looge ajaobjekt pikkade numbrite vormingus
Enne kuupäevade võrdlemist peate looma eelnevalt loodud kuupäevaobjektist pikkade täisarvude väärtuse. Õnneks teeb getTime () meetod selle teie jaoks ära.
pikk aeg1 = getTime (kuupäev1); // deklareeri primitiivne kellaaeg1 kuupäevast1 pikk aeg2 = getTime (kuupäev2); // deklareerida kuupäeva2 primitiivne aeg2 väärtus
Samm 3. Tehke vähem kui võrdlus
Nende kahe täisarvuväärtuse võrdlemiseks kasutage operandi vähem kui (<). Kuna aeg1 on lühem kui aeg2, kuvatakse esimene teade. Süntaksi täiendamiseks on lisatud muu avaldus.
if (time1 <time2) {System.out.println ("date1 on kuupäev enne kuupäeva2"); // kuvatakse, sest aeg1 <aeg2} else {System.out.println ("date1 ei ole kuupäev enne kuupäeva2"); }
Samm 4. Tehke võrdlusest suurem
Nende kahe täisarvu väärtuste võrdlemiseks kasutage operandi suuremat kui (>). Kuna aeg1 on suurem kui aeg2, kuvatakse esimene teade. Süntaksi täiendamiseks on lisatud muu avaldus.
if (time2> time1) {System.out.println ("date2 on kuupäev pärast kuupäeva1"); // kuvatakse, sest aeg2> aeg1} else {System.out.println ("date2 ei ole kuupäev pärast kuupäeva1"); }
Samm 5. Võrdle võrdlus
Kasutage operandifunktsiooni, et kontrollida nende kahe täisarvu võrdlemiseks väärtuste võrdsust (==). Kuna aeg1 võrdub ajaga3, kuvatakse esimene teade. Kui programmi voog läheb lausesse else, tähendab see, et kahel korral pole sama väärtust.
if (time1 == time2) {System.out.println ("mõlemad kuupäevad on samad"); } else {System.out.println ("Esimene ei ole sama mis teine"); // kuvatakse, sest aeg1! = aeg2}