4 tapaa verrata kahta päivämäärää Javassa

Sisällysluettelo:

4 tapaa verrata kahta päivämäärää Javassa
4 tapaa verrata kahta päivämäärää Javassa

Video: 4 tapaa verrata kahta päivämäärää Javassa

Video: 4 tapaa verrata kahta päivämäärää Javassa
Video: Javan perusteita lyhyesti: Alkeet 2024, Saattaa
Anonim

On monia tapoja verrata kahta päivämäärää Java -ohjelmointikielellä. Tietokoneissa päivämäärää edustaa luku (tietotyyppi Long) ajan yksiköissä - eli millisekuntien lukumäärä, joka on kulunut 1. tammikuuta 1970. Java: ssa Päivämäärä on objekti, mikä tarkoittaa, että sillä on useita menetelmiä vertailun tekemiseen. Mikä tahansa menetelmä, jota käytetään kahden päivämäärän vertaamiseen, on olennaisesti kahden päivämäärän aikayksiköiden vertailu.

Vaihe

Tapa 1/4: Vertailu

4301351 1
4301351 1

Vaihe 1. Käytä vertaa

Päivämääräobjekti toteuttaa vertailukelpoisen, joten kahta päivämäärää voidaan verrata toisiinsa suoraan vertailu -menetelmällä. Jos molemmilla päivämäärillä on sama määrä aikayksiköissä, menetelmä palauttaa nollan. Jos toinen päivämäärä on pienempi kuin ensimmäinen, palautetaan arvo, joka on pienempi kuin nolla. Jos toinen päivämäärä on suurempi kuin ensimmäinen, menetelmä palauttaa arvon, joka on suurempi kuin nolla. Jos molemmat päivämäärät ovat samat, menetelmä palauttaa nolla -arvon.

4301351 2
4301351 2

Vaihe 2. Luo useita päivämääräobjekteja

Sinun on luotava useita päivämääräobjekteja ennen niiden vertaamista. Yksi helpoimmista tavoista tehdä tämä on käyttää SimpleDateFormat -luokkaa. Tämän luokan avulla on helppo muuntaa syötetty päivämääräarvo päivämääräobjektiksi.

    SimpleDateFormat sdf = uusi SimpleDateFormat ("yyyy-MM-dd"). Jos haluat ilmoittaa arvon uudessa Objektin päivämäärä -kohdassa, käytä samaa päivämäärämuotoa päivämäärää luodessasi. Päivämäärä päivämäärä1 = sdf.parse ("1995-02-23"); // päivämäärä1 on 23. helmikuuta 1995 Päivämääräpäivä2 = sdf.parse ("2001-10-31"); // päivämäärä2 on 31. lokakuuta 2001 Päivämääräpäivä3 = sdf.parse ("1995-02-23"); // päivämäärä3 on 23. helmikuuta 1995

4301351 3
4301351 3

Vaihe 3. Vertaa päivämääräobjekteja

Seuraava koodi näyttää esimerkkejä kustakin tapauksesta - pienempi, yhtä suuri ja suurempi kuin.

    date1.compareTo (päivämäärä2); // päivämäärä1 <päivämäärä2, palauttaa arvon, joka on pienempi kuin 0 date2.compareTo (date1); // date2> date1, palauttaa arvon, joka on suurempi kuin 0 date1.compareTo (date3); // päivämäärä1 = päivämäärä3, joten se tulostaa 0 konsolissa

Tapa 2/4: Yhtäläisten käyttäminen, jälkeen ja ennen

4301351 4
4301351 4

Vaihe 1. Käytä yhtä kuin, jälkeen ja ennen

Päivämääriä voidaan verrata käyttämällä yhtä, jälkeen ja ennen -menetelmiä. Jos kahdella päivämäärällä on sama arvo ajassa, yhtälö -menetelmä palauttaa arvon tosi. Seuraavassa esimerkissä käytetään CompaTo -esimerkissä luotua päivämääräobjektia.

4301351 5
4301351 5

Vaihe 2. Vertaa edelliseen menetelmään

Seuraava koodi näyttää esimerkkitapauksen, joka palauttaa true ja false. Jos päivämäärä1 on päivämäärä ennen päivämäärää2, edeltävä menetelmä palauttaa arvon tosi. Muussa tapauksessa menetelmä palauttaa epätosi.

    System.out.print (date1.before (date2)); // näytä arvo '' true '' System.out.print (date2.before (date2)); // palauttaa arvon '' false ''

4301351 6
4301351 6

Vaihe 3. Vertaa käyttämällä jälkimenetelmää

Seuraava koodi näyttää esimerkkitapauksen, joka palauttaa true ja false. Jos päivämäärä2 on päivämäärä päivämäärän1 jälkeen, jälkimenetelmä palauttaa arvon tosi. Muussa tapauksessa after -menetelmä palauttaa arvon false.

    System.out.print (date2.after (date1)); // näyttää arvon '' true '' System.out.print (date1.after (date2)); // näyttää arvon '' false ''

4301351 7
4301351 7

Vaihe 4. Vertaa yhtä suuri -menetelmään

Seuraava koodi näyttää esimerkkitapauksen, joka palauttaa true ja false. Jos molemmat päivämäärät ovat samat, yhtälö -menetelmä palauttaa arvon tosi. Muussa tapauksessa yhtälömenetelmä palauttaa epätosi.

    System.out.print (date1.equals (date3)); // näyttää arvon '' true '' System.out.print (date1.equals (date2)); // näyttää arvon '' false ''

Tapa 3/4: Luokkakalenterin käyttö

4301351 8
4301351 8

Vaihe 1. Käytä luokkakalenteria

Kalenteriluokassa on myös vertailumuoto, yhtä kuin, jälkeen ja ennen -menetelmät, jotka toimivat samalla tavalla kuin päivämääräluokassa aiemmin kuvatut. Joten jos päivämäärätiedot on tallennettu luokkakalenteriin, sinun ei tarvitse poimia päivämäärää vain vertailun vuoksi.

4301351 9
4301351 9

Vaihe 2. Luo kalenterin ilmentymä

Jotta voit käyttää luokkakalenterin menetelmiä, sinun on luotava useita kalenterin esiintymiä. Onneksi voit käyttää aiemmin luodun päivämääräilmentymän arvoja.

    Kalenteri cal1 = Calendar.getInstance (); // julista cal1 Kalenteri cal2 = Calendar.getInstance (); // julista cal2 Kalenteri cal3 = Calendar.getInstance (); // julistaa cal3 cal1.setTime (date1); // laita päivämäärä cal1 cal2.setTime (date2); cal3.setTime (päivämäärä3);

4301351 10
4301351 10

Vaihe 3. Vertaa cal1: ää ja cal2: ta edellisen menetelmän avulla

Seuraava koodi antaa arvon tr

    System.out.print (cal1.before (cal2)); // palauttaa arvon '' true ''

4301351 11
4301351 11

Vaihe 4. Vertaa cal1 ja cal2 käyttämällä after -menetelmää

Seuraava koodi palauttaa epätosi, koska cal1 on päivämäärä ennen cal2.

    System.out.print (cal1.after (cal2)); // palauttaa arvon '' false ''

4301351 12
4301351 12

Vaihe 5. Vertaa cal1: ää ja cal2: ta yhtälömenetelmällä

Seuraava koodi näyttää esimerkkitapauksen, joka palauttaa arvon tosi ja epätosi. Tila riippuu vertailtavasta kalenterista. Seuraava koodi palauttaa arvon "true" ja sitten "false" seuraavalla rivillä.

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

Tapa 4/4: GetTimen käyttäminen

4301351 13
4301351 13

Vaihe 1. Käytä getTime -ohjelmaa

Voit myös vertailla suoraan kahden päivämäärän aikayksikköarvoja, vaikka edelliset kaksi menetelmää voivat olla helpompia lukea ja suositella. Tällä tavalla vertaat kahta primitiivistä tietotyyppiä, joten voit käyttää operandeja "" ja "==".

4301351 14
4301351 14

Vaihe 2. Luo aikaobjekti pitkässä muodossa

Ennen kuin voit verrata päivämääriä, sinun on luotava pitkä kokonaislukuarvo aiemmin luodusta päivämääräobjektista. Onneksi getTime () -menetelmä tekee sen puolestasi.

    pitkä aika1 = getTime (päivämäärä1); // julistaa primitiivinen aika1 päivämäärä1 pitkä aika2 = getTime (päivämäärä2); // ilmoita päivämäärän2 primitiivinen aika2 -arvo

4301351 15
4301351 15

Vaihe 3. Suorita vähemmän vertailu

Vertaa näitä kahta kokonaislukuarvoa alle (<) operandilla. Koska aika1 on lyhyempi kuin aika2, ensimmäinen viesti tulee näkyviin. Muu lause sisältyy syntaksin täydentämiseen.

    if (aika1 <aika2) {System.out.println ("päivämäärä1 on päivämäärä ennen päivämäärää2"); // näytetään, koska aika1 <aika2} muu {System.out.println ("päivämäärä1 ei ole päivämäärä ennen päivämäärää2"); }

4301351 16
4301351 16

Vaihe 4. Suorita suurempi kuin vertailu

Vertaa näitä kahta kokonaislukuarvoa suuremmalla kuin (>) operandilla. Koska aika1 on suurempi kuin aika2, ensimmäinen viesti tulee näkyviin. Muu lause sisältyy syntaksin täydentämiseen.

    if (aika2> aika1) {System.out.println ("päivämäärä2 on päivämäärä päivämäärän1 jälkeen"); // näytetään, koska aika2> aika1} else {System.out.println ("date2 ei ole päivämäärä päivämäärän1 jälkeen"); }

4301351 17
4301351 17

Vaihe 5. Vertaa yhtä paljon

Käytä operandifunktiota arvojen (==) tasavertaisuuden tarkistamiseen näiden kahden kokonaisluvun vertaamiseksi. Koska aika1 on sama kuin aika3, ensimmäinen viesti tulee näkyviin. Jos ohjelmavirta menee muuhun lauseeseen, se tarkoittaa, että kahdella kertaa ei ole samaa arvoa.

    if (aika1 == aika2) {System.out.println ("molemmat päivämäärät ovat samat"); } else {System.out.println ("Ensimmäinen ei ole sama kuin toinen"); // näytetään, koska aika1! = aika2}

Suositeltava: