Kuna njia anuwai za kulinganisha tarehe za Java. Ndani, tarehe inawakilishwa kama hatua (ndefu) kwa wakati - idadi ya millisecond ambazo zimepita tangu Januari 1 1970. Katika Java, Tarehe ni kitu, ambayo inamaanisha inajumuisha njia nyingi za kulinganisha. Njia yoyote ya kulinganisha tarehe mbili kimsingi italinganisha nyakati za tarehe.
Hatua
Njia 1 ya 4: Kutumia kulinganisha
Hatua ya 1. Tumia kulinganisha
Utekelezaji wa tarehe Unalinganishwa na kwa hivyo tarehe mbili zinaweza kulinganishwa moja kwa moja na njia ya kulinganisha. Ikiwa tarehe ni za nukta sawa kwa wakati, njia inarudi sifuri. Ikiwa tarehe inayolinganishwa iko kabla ya hoja ya tarehe, thamani chini ya sifuri inarejeshwa. Ikiwa tarehe inayolinganishwa ni baada ya hoja ya tarehe, thamani kubwa kuliko sifuri inarejeshwa. Ikiwa tarehe ni sawa, thamani ya 0 inarejeshwa.
Hatua ya 2. Unda vitu vya tarehe
Utahitaji kuunda kila kitu cha tarehe kabla ya kuanza kulinganisha. Njia moja ya kufanya hivyo ni kutumia darasa la SimpleDateFormat. Inaruhusu kuingia kwa urahisi kwa maadili ya tarehe katika vitu vya tarehe.
RahisiDateFormat sdf = mpya SimpleDateFormat ("yyyy-MM-dd"); // Kwa kutangaza maadili katika vitu vipya vya tarehe. tumia fomati sawa ya tarehe 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 iliyo hapa chini itakuonyesha kila kesi - chini ya, sawa, na kubwa kuliko.
tarehe1 kulinganishaTo (tarehe2); // tarehe1 <date2, inarudi chini ya 0 date2.compareTo (date1); // date2> date1, inarudi zaidi ya 0 date1.compareTo (date3); // date1 = date3, kwa hivyo tutachapisha 0 kutuliza
Njia 2 ya 4: Kutumia Sawa, Baada, na Kabla
Hatua ya 1. Tumia sawa, baada na kabla
Tarehe zinaweza kulinganishwa na sawa, baada na kabla ya njia. Ikiwa tarehe mbili ni za nukta moja kwa wakati, njia sawa itarudi kweli. Mifano zitatumia tarehe zilizoundwa hapo awali kutoka kwa njia ya kulinganisha.
Hatua ya 2. Linganisha kutumia njia ya awali
Nambari hapa chini inaonyesha kesi ya kweli na ya uwongo. Ikiwa tarehe1 iko kabla ya tarehe2, kabla ya kurudi kweli. Ikiwa sivyo, kabla ya kurudi uwongo.
Rangi ya Mfumo. (Tarehe1 kabla ya (tarehe2)); // prints kweli System.out.print (tarehe2.mbele ya (tarehe2)); // magazeti ya uwongo
Hatua ya 3. Linganisha kutumia njia inayofuata
Nambari hapa chini inaonyesha kesi ya kweli na ya uwongo. Ikiwa tarehe2 ni baada ya tarehe1, baada ya kurudi kweli. Ikiwa sivyo, baada ya kurudi uwongo.
System.out.print (date2.after (date1)); // prints true System.out.print (date1.after (date2)); // prints false
Hatua ya 4. Linganisha kutumia njia sawa
Nambari hapa chini inaonyesha kesi ya kweli na ya uwongo. Ikiwa tarehe ni sawa, sawa inarudi kweli. Ikiwa sio, sawa inarudi uwongo.
System.out.print (tarehe1.equals (date3)); // prints kweli System.out.print (tarehe1.equals (date2));
Njia 3 ya 4: Kutumia Darasa la Kalenda
Hatua ya 1. Tumia kalenda
Darasa la kalenda pia lina kulinganishaKwa, sawa, baada na kabla ya njia zinazofanya kazi kwa njia ile ile kama ilivyoelezwa hapo juu kwa darasa la tarehe. Kwa hivyo ikiwa habari ya tarehe inashikiliwa kwenye kalenda, hakuna haja ya kutoa tarehe ili tu kulinganisha.
Hatua ya 2. Unda matukio ya Kalenda
Kutumia njia za Kalenda, utahitaji visa kadhaa vya Kalenda. Kwa bahati nzuri, unaweza tu kunyakua nyakati kutoka kwa visa vya Tarehe zilizoundwa tayari.
Kalenda cal1 = Kalenda.getInstance (); // inatangaza kalenda ya cal1 cal1 = Kalenda.getInstance (); // inatangaza kalenda ya cal2 cal3 = Kalenda.getInstance (); // inatangaza cal3 cal1. TimeTime (tarehe1); // inatumika tarehe ya cal1 cal2.setTime (tarehe2); Cal3.setTime (tarehe3);
Hatua ya 3. Linganisha cal1 na cal2 ukitumia hapo awali
Nambari hapa chini inapaswa kuchapisha kweli kwani cal1 iko kabla ya cal2.
Printa ya Mfumo (cal1 kabla ya (cal2)); // itachapisha kweli
Hatua ya 4. Linganisha cal1 na cal2 ukitumia baada
Nambari iliyo hapa chini inapaswa kuchapisha uwongo kwani cal1 iko kabla ya cal2.
Rangi ya Mfumo. (Cal1.baad (cal2)); // magazeti ya uwongo
Hatua ya 5. Linganisha cal1 na cal2 ukitumia sawa
Nambari iliyo hapa chini itaonyesha mfano wa kesi ya kweli na ya uwongo. Hali hiyo inategemea matukio ya kalenda yanayolinganishwa. Nambari inapaswa kuchapisha "kweli," kisha "uwongo" kwenye laini inayofuata.
Mfumo.out.println (cal1.equals (cal3)); // prints kweli: cal1 == cal3 System.out.print (cal1.equals (cal2)); // prints uongo: cal1! = cal2
Njia 4 ya 4: Kutumia GetTime
Hatua ya 1. Tumia wakati
Inawezekana pia kulinganisha moja kwa moja wakati wa tarehe mbili, ingawa njia yoyote ya hapo awali inaweza kusomeka zaidi na inapendeza zaidi. Hii itakuwa kulinganisha aina mbili za data za zamani, kwa hivyo inaweza kufanywa na "", na "==".
Hatua ya 2. Unda vitu vya muda mrefu
Kabla ya kulinganisha tarehe, lazima uunda nambari ndefu na data kutoka kwa vitu vya Tarehe vilivyoundwa hapo awali. Kwa bahati nzuri, njia ya GetTime () itakufanyia kazi nyingi.
muda mrefu1 = muda wa kupata (tarehe1); // inatangaza wakati wa zamani1 kutoka tarehe1 muda mrefu2 = wakati wa kupata (tarehe2); // inatangaza wakati wa zamani2 kuanzia tarehe2
Hatua ya 3. Fanya chini ya kulinganisha
Tumia chini ya alama (<) kulinganisha maadili haya mawili kamili. Kwa kuwa saa1 ni chini ya wakati wa 2, ujumbe wa kwanza unapaswa kuchapisha. Taarifa nyingine imejumuishwa kwa syntax sahihi.
ikiwa (time1 <time2) {System.out.println ("date1 ni kabla ya tarehe2"); // itachapisha tangu time1 <time2} mwingine {System.out.println ("date1 sio kabla ya tarehe2"); }
Hatua ya 4. Fanya kubwa kuliko kulinganisha
Tumia kubwa kuliko alama (>) kulinganisha nambari hizi mbili kamili. Kwa kuwa saa1 ni kubwa kuliko wakati wa 2, ujumbe wa kwanza unapaswa kuchapisha. Taarifa nyingine imejumuishwa kwa syntax sahihi.
ikiwa (time2> time1) {System.out.println ("date2 ni baada ya tarehe1"); // itachapisha tangu time2> time1} mwingine {System.out.println ("date2 sio baada ya tarehe1"); }
Hatua ya 5. Fanya kulinganisha sawa
Tumia ishara kuangalia usawa (==) kulinganisha nambari hizi mbili kamili za usawa. Kwa kuwa time1 ni sawa na time3, ujumbe wa kwanza unapaswa kuchapisha. Ikiwa mpango utapata taarifa nyingine, hiyo inamaanisha nyakati hazilingani.
ikiwa (time1 == time2) {System.out.println ("tarehe ni sawa"); } mwingine {System.out.println ("tarehe hazilingani"); // itachapishwa tangu saa1! = saa2}