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: Värikuvan vektorointi Illustrator 2024, Huhtikuu
Anonim

Java -päivämääriä voi verrata eri tavoin. Sisäisesti päivämäärä esitetään (pitkänä) ajankohtana - tammikuun 1. päivän 1970 jälkeen kuluneiden millisekuntien lukumäärä. Javassa Päivämäärä on objekti, mikä tarkoittaa, että se sisältää useita vertailumenetelmiä. Mikä tahansa tapa verrata kahta päivämäärää vertaa olennaisesti päivämäärien aikoja.

Askeleet

Tapa 1/4: Vertailu

4301351 1
4301351 1

Vaihe 1. Käytä vertaa

Päivämäärä toteutetaan Vertailukelpoinen, joten kahta päivämäärää voidaan verrata suoraan vertailu -menetelmään. Jos päivämäärät ovat samaa ajankohtaa, menetelmä palauttaa nollan. Jos vertailtava päivämäärä on ennen päivämäärä -argumenttia, arvo palautetaan alle nolla. Jos vertailtava päivämäärä on päivämäärä -argumentin jälkeen, palautetaan nollaa suurempi arvo. Jos päivämäärät ovat samat, arvo 0 palautetaan.

4301351 2
4301351 2

Vaihe 2. Luo päivämääräobjektit

Sinun on luotava jokainen päivämääräobjekti, ennen kuin voit alkaa vertailla niitä. Yksi tapa tehdä tämä on käyttää SimpleDateFormat -luokkaa. Se mahdollistaa päivämääräarvojen helpon syöttämisen päivämääräobjekteihin.

    SimpleDateFormat sdf = uusi SimpleDateFormat ("yyyy-MM-dd"); // Arvojen ilmoittamiseen uusissa päivämääräobjekteissa. käytä samaa päivämäärämuotoa päivämääriä luodessasi Date date1 = 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

Alla oleva koodi näyttää jokaisen tapauksen - pienempi, yhtä suuri ja suurempi kuin.

    date1.compareTo (päivämäärä2); // päivämäärä1 <päivämäärä2, palauttaa alle 0 päivämäärä2.compareTo (päivämäärä1); // päivämäärä2> päivämäärä1, palauttaa suuremman kuin 0 date1.compareTo (date3); // päivämäärä1 = päivämäärä3, joten tulostetaan 0 konsoliin

Menetelmä 2/4: Yhtäläisten, jälkeen ja ennen käyttöä

4301351 4
4301351 4

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

Päivämääriä voidaan verrata yhtäläisiin, jälkeen ja ennen menetelmiä. Jos kaksi päivämäärää koskevat samaa ajankohtaa, yhtälö -menetelmä palauttaa arvon tosi. Esimerkit käyttävät aikaisemmin luotuja päivämääriä vertailumenetelmästä.

4301351 5
4301351 5

Vaihe 2. Vertaa edellisellä menetelmällä

Alla oleva koodi näyttää oikean ja väärän tapauksen. Jos päivämäärä1 on ennen päivämäärää2, ennen palauttaa arvon tosi. Jos ei, palauttaa ennen arvoa false.

    System.out.print (date1.before (date2)); // tulostaa todellisen System.out.print (date2.before (date2)); // tulostaa epätosi

4301351 6
4301351 6

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

Alla oleva koodi näyttää oikean ja väärän tapauksen. Jos päivämäärä2 on päivämäärän1 jälkeen, palauttaa sen jälkeen tosi. Jos ei ole, palauttaa epätosi.

    System.out.print (date2.after (date1)); // tulostaa true System.out.print (date1.after (date2)); // tulostaa false

4301351 7
4301351 7

Vaihe 4. Vertaa yhtälömenetelmää käyttäen

Alla oleva koodi näyttää oikean ja väärän tapauksen. Jos päivämäärät ovat samat, yhtälö palauttaa arvon tosi. Jos ne eivät ole, yhtälö palauttaa arvon epätosi.

    System.out.print (date1.equals (date3)); // tulostaa true System.out.print (date1.equals (date2)); // tulostaa false

Tapa 3/4: Kalenteriluokan käyttö

4301351 8
4301351 8

Vaihe 1. Käytä kalenteria

Kalenteriluokassa on myös vertailumuoto, yhtä kuin, jälkeen ja ennen menetelmiä, jotka toimivat samalla tavalla kuin edellä päivämääräluokalle on kuvattu. Joten jos päivämäärätietoja säilytetään kalenterissa, päivämäärää ei tarvitse poimia vain vertailun suorittamiseksi.

4301351 9
4301351 9

Vaihe 2. Luo kalenterin esiintymiä

Kalenterimenetelmien käyttämiseen tarvitset muutamia kalenteritapauksia. Onneksi voit vain napata kellonajat jo luotuista päivämääräesineistä.

    Kalenteri cal1 = Calendar.getInstance (); // ilmoittaa cal1 Kalenteri cal2 = Calendar.getInstance (); // ilmoittaa cal2 Kalenteri cal3 = Calendar.getInstance (); // ilmoittaa cal3 cal1.setTime (date1); // koskee 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 käyttämällä aiemmin

Alla olevan koodin pitäisi tulostaa tosi, koska cal1 on ennen cal2.

    System.out.print (cal1.before (cal2)); // tulostaa totta

4301351 11
4301351 11

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

Alla olevan koodin pitäisi tulostaa epätosi, koska cal1 on ennen cal2.

    System.out.print (cal1.after (cal2)); // tulostaa epätosi

4301351 12
4301351 12

Vaihe 5. Vertaa cal1 ja cal2 käyttäen yhtäsuuria

Alla oleva koodi näyttää esimerkin sekä oikeasta että väärästä tapauksesta. Ehto riippuu vertailtavista kalenterikohteista. Koodin pitäisi tulostaa "true" ja sitten "false" seuraavalle riville.

    System.out.println (cal1.equals (cal3)); // tulostaa tosi: cal1 == cal3 System.out.print (cal1.equals (cal2)); // tulostaa väärin: cal1! = cal2

Tapa 4/4: GetTimen käyttäminen

4301351 13
4301351 13

Vaihe 1. Käytä getTime -ohjelmaa

On myös mahdollista verrata suoraan kahden päivämäärän ajankohtaa, vaikka mikä tahansa aikaisemmista lähestymistavoista on todennäköisesti luettavampi ja siten parempi. Tämä on kahden primitiivisen tietotyypin vertailu, joten se voidaan tehdä "" ja "==".

4301351 14
4301351 14

Vaihe 2. Luo pitkäaikaiset objektit

Ennen kuin voit verrata päivämääriä, sinun on luotava pitkiä kokonaislukuja aiemmin luotujen päivämääräobjektien tietojen kanssa. Onneksi getTime () -menetelmä tekee suurimman osan työstä puolestasi.

    pitkä aika1 = getTime (päivämäärä1); // ilmoittaa primitiivisen ajan1 päivämäärästä1 pitkä aika2 = getTime (päivämäärä2); // ilmoittaa primitiivisen ajan2 päivämäärästä2

4301351 15
4301351 15

Vaihe 3. Tee vähemmän kuin vertailu

Vertaa näitä kahta kokonaislukua pienemmällä symbolilla (<). Koska aika1 on lyhyempi kuin aika 2, ensimmäinen viesti tulostetaan. Muu lause sisältyy oikeaan syntaksiin.

    if (aika1 <aika2) {System.out.println ("date1 is before date2"); // tulostaa aika1 <aika2} else {System.out.println ("date1 is not before date2"); }

4301351 16
4301351 16

Vaihe 4. Tee suurempi kuin vertailu

Vertaa näitä kahta kokonaislukua suuremmalla symbolilla (>). Koska aika1 on pidempi kuin aika 2, ensimmäinen viesti tulostetaan. Muu lause sisältyy oikeaan syntaksiin.

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

4301351 17
4301351 17

Vaihe 5. Vertaa yhtä

Käytä symbolia tasaisuuden tarkistamiseen (==) vertaillaksesi näitä kahta kokonaislukua. Koska aika1 on sama kuin aika3, ensimmäinen viesti tulostetaan. Jos ohjelma pääsee else -lauseeseen, ajat eivät ole yhtä suuret.

    if (aika1 == aika2) {System.out.println ("päivämäärät ovat samat"); } else {System.out.println ("päivämäärät eivät ole samat"); // tulostetaan aika1! = aika2}

Suositeltava: