Kuna njia nyingi za kulinganisha tarehe mbili katika lugha ya programu ya Java. Katika kompyuta, tarehe inawakilishwa na nambari (aina ya data ndefu) katika vitengo vya wakati - ambayo ni, idadi ya millisecond ambazo zimepita tangu Januari 1, 1970. Katika Java, Tarehe ni kitu, ambayo inamaanisha ina njia kadhaa za kufanya kulinganisha. Njia yoyote inayotumika kulinganisha tarehe mbili kimsingi inalinganisha vitengo vya wakati wa tarehe hizo mbili.
Hatua
Njia 1 ya 4: Kutumia kulinganisha
Hatua ya 1. Tumia kulinganisha
Kitu cha Tarehe kinatekelezeka kulinganishwa kwa hivyo tarehe 2 zinaweza kulinganishwa na moja kwa moja na njia ya kulinganisha. Ikiwa tarehe zote mbili zina nambari sawa katika vitengo vya wakati, basi njia inarudi sifuri. Ikiwa tarehe ya pili ni chini ya ile ya kwanza, thamani chini ya sifuri inarejeshwa. Ikiwa tarehe ya pili ni kubwa kuliko ile ya kwanza, njia hiyo inarudisha thamani kubwa kuliko sifuri. Ikiwa tarehe zote mbili ni sawa, basi njia hiyo itarudisha null null.
Hatua ya 2. Unda vitu vingi vya Tarehe
Lazima uunde vitu vingi vya Tarehe kabla ya kuzilinganisha. Njia moja rahisi ya kufanya hivyo ni kutumia darasa la SimpleDateFormat. Darasa hili hufanya iwe rahisi kubadilisha tarehe ya kuingiza kuwa kitu cha Tarehe.
SimpleDateFormat sdf = mpya SimpleDateFormat ("yyyy-MM-dd"). Kutangaza thamani katika "Tarehe ya Kitu" mpya, tumia fomati ya tarehe ile ile wakati wa kuunda tarehe. Tarehe ya tarehe1 = sdf.parse ("1995-02-23"); // tarehe1 ni Februari 23, 1995 Tarehe tarehe2 = sdf.parse ("2001-10-31"); // tarehe2 ni Oktoba 31, 2001 Tarehe33 = sdf.parse ("1995-02-23"); // tarehe3 ni Februari 23, 1995
Hatua ya 3. Linganisha vitu vya Tarehe
Nambari ifuatayo itakuonyesha mifano ya kila kesi - chini ya, sawa, na kubwa kuliko.
tarehe1 kulinganishaTo (tarehe2); // tarehe1 <date2, inarudisha thamani chini ya 0 date2.compareTo (date1); // date2> date1, inarudi thamani kubwa kuliko 0 date1.compareTo (date3); // date1 = date3, kwa hivyo itatoa 0 kwenye koni
Njia 2 ya 4: Kutumia Sawa, Baada na Kabla
Hatua ya 1. Tumia sawa, baada na kabla
Tarehe zinaweza kulinganishwa kwa kutumia sawa, baada, na kabla ya njia. Ikiwa tarehe mbili zina thamani sawa kwa wakati, njia sawa inarudi kweli. Mfano ufuatao utatumia kitu cha Tarehe iliyoundwa kwa njia ya kulinganisha.
Hatua ya 2. Linganisha na njia ya hapo awali
Nambari ifuatayo inaonyesha kesi ya mfano ambayo inarudi kweli na uwongo. Ikiwa tarehe1 ni tarehe kabla ya tarehe2, njia ya awali inarudi kweli. Vinginevyo, njia ya awali inarudi uwongo.
Rangi ya Mfumo. (Tarehe1 kabla ya (tarehe2)); // onyesha thamani "ya kweli" System.out.print (date2.before (date2)); // kurudisha thamani "ya uwongo"
Hatua ya 3. Linganisha kutumia njia inayofuata
Nambari ifuatayo inaonyesha kesi ya mfano ambayo inarudi kweli na uwongo. Ikiwa tarehe2 ni tarehe baada ya tarehe1, njia inayofuata inarudi kweli. Vinginevyo, njia inayofuata itarudi kwa uwongo.
System.out.print (date2.after (date1)); // onyesha thamani "kweli" System.out.print (date1.after (date2));
Hatua ya 4. Linganisha na njia sawa
Nambari ifuatayo inaonyesha kesi ya mfano ambayo inarudi kweli na uwongo. Ikiwa tarehe zote mbili ni sawa, njia sawa inarudi kweli. Vinginevyo, njia sawa inarudi uwongo.
System.out.print (tarehe1.equals (date3)); // onyesha thamani "kweli" System.out.print (tarehe1.equals (date2));
Njia 3 ya 4: Kutumia Kalenda ya Darasa
Hatua ya 1. Tumia Kalenda ya Darasa
Darasa la Kalenda pia ina kulinganisha, sawa, baada, na kabla ya njia zinazofanya kazi sawa na zile zilizoelezewa mapema kwa darasa la Tarehe. Kwa hivyo ikiwa habari ya tarehe imehifadhiwa kwenye Kalenda ya Darasa, hauitaji kutoa tarehe ili tu kulinganisha.
Hatua ya 2. Unda mfano wa Kalenda
Kutumia njia katika Kalenda ya Hatari, lazima uunde matukio kadhaa ya Kalenda. Kwa bahati nzuri, unaweza kutumia maadili kutoka kwa Tarehe iliyoundwa hapo awali.
Kalenda cal1 = Kalenda.getInstance (); // tangaza Kalenda ya cal1 cal2 = Kalenda.getInstance (); // tangaza kalenda ya cal2 cal3 = Kalenda.getInstance (); // tangaza cal3 cal1. TimeTime (tarehe1); // weka tarehe katika cal1 cal2.setTime (tarehe2); Cal3.setTime (tarehe3);
Hatua ya 3. Linganisha cal1 na cal2 ukitumia njia ya hapo awali
Nambari ifuatayo itatoa thamani ya tr
Printa ya Mfumo (cal1 kabla ya (cal2)); // itarudi thamani "kweli"
Hatua ya 4. Linganisha cal1 na cal2 ukitumia njia inayofuata
Nambari ifuatayo itarudi kwa uwongo kwa sababu cal1 ni tarehe kabla ya cal2.
Rangi ya Mfumo. (Cal1.baad (cal2)); // kurudisha thamani "ya uwongo"
Hatua ya 5. Linganisha cal1 na cal2 kwa kutumia njia sawa
Nambari ifuatayo itaonyesha kesi ya mfano ambayo inarudi kweli na uwongo. Hali inategemea mfano wa Kalenda ikilinganishwa. Nambari ifuatayo itarudisha thamani "kweli", halafu "uwongo" kwenye mstari unaofuata.
Mfumo.out.println (cal1.equals (cal3)); // kurudisha thamani "kweli": cal1 == cal3 System.out.print (cal1.equals (cal2)); // kurudisha thamani "ya uwongo": cal1! = cal2
Njia 4 ya 4: Kutumia GetTime
Hatua ya 1. Tumia wakati
Unaweza pia kulinganisha moja kwa moja maadili ya kitengo cha tarehe mbili, ingawa njia mbili zilizopita zinaweza kuwa rahisi kusoma na kupendeza. Kwa njia hii utakuwa unalinganisha aina 2 za data za zamani, kwa hivyo unaweza kutumia operesheni "", na "==".
Hatua ya 2. Unda kitu cha wakati katika muundo wa Nambari ndefu
Kabla ya kulinganisha tarehe, lazima uunde Thamani ya Nambari ndefu kutoka kwa kitu cha Tarehe kilichoundwa hapo awali. Kwa bahati nzuri, njia ya GetTime () itakufanyia.
muda mrefu1 = muda wa kupata (tarehe1); // tangaza wakati wa zamani 1 wa tarehe1 muda mrefu2 = muda wa kupata (tarehe2); // tangaza wakati wa zamani 2 thamani ya tarehe2
Hatua ya 3. Fanya chini ya kulinganisha
Tumia operesheni chini ya (<) kulinganisha maadili haya mawili kamili. Kwa kuwa saa1 ni chini ya saa2, ujumbe wa kwanza utaonekana. Taarifa nyingine imejumuishwa kukamilisha syntax.
ikiwa (time1 <time2) {System.out.println ("date1 ni tarehe kabla ya tarehe2"); // itaonyesha kwa sababu time1 <time2} mwingine {System.out.println ("date1 sio tarehe kabla ya tarehe2"); }
Hatua ya 4. Fanya kubwa kuliko kulinganisha
Tumia operesheni kubwa kuliko (>) kulinganisha nambari hizi mbili kamili. Kwa sababu time1 ni kubwa kuliko saa2, ujumbe wa kwanza utaonekana. Taarifa nyingine imejumuishwa kukamilisha syntax.
ikiwa (time2> time1) {System.out.println ("date2 ni tarehe baada ya tarehe1"); // itaonyesha kwa sababu time2> time1} mwingine {System.out.println ("date2 sio tarehe baada ya tarehe1"); }
Hatua ya 5. Fanya kulinganisha sawa
Tumia kazi ya operesheni kuangalia usawa wa maadili (==) kulinganisha nambari hizi mbili. Kwa kuwa time1 ni sawa na time3, ujumbe wa kwanza utaonekana. Ikiwa mtiririko wa programu utaingia kwenye taarifa nyingine, inamaanisha kwamba nyakati hizo mbili hazina thamani sawa.
ikiwa (time1 == time2) {System.out.println ("tarehe zote mbili ni sawa"); } mwingine {System.out.println ("Ya 1 si sawa na ya 2"); // itaonyeshwa kwa sababu saa1! = saa2}