4 võimalust kahe kuupäeva võrdlemiseks Java -s

Sisukord:

4 võimalust kahe kuupäeva võrdlemiseks Java -s
4 võimalust kahe kuupäeva võrdlemiseks Java -s

Video: 4 võimalust kahe kuupäeva võrdlemiseks Java -s

Video: 4 võimalust kahe kuupäeva võrdlemiseks Java -s
Video: Алексей Воробьёв - Сумасшедшая 2024, Aprill
Anonim

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

4301351 1
4301351 1

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.

4301351 2
4301351 2

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

4301351 3
4301351 3

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

4301351 4
4301351 4

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.

4301351 5
4301351 5

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"

4301351 6
4301351 6

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 ''

4301351 7
4301351 7

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

4301351 8
4301351 8

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.

4301351 9
4301351 9

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

4301351 10
4301351 10

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"

4301351 11
4301351 11

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"

4301351 12
4301351 12

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

4301351 13
4301351 13

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

4301351 14
4301351 14

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

4301351 15
4301351 15

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

4301351 16
4301351 16

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

4301351 17
4301351 17

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}

Soovitan: