Yra daug būdų palyginti dvi datas „Java“programavimo kalba. Kompiuteriuose data pateikiama skaičiumi (duomenų tipas „Ilgas“) laiko vienetais - tai yra milisekundžių, praėjusių nuo 1970 m. Sausio 1 d., Skaičiumi. „Java“programoje data yra objektas, o tai reiškia, kad keli palyginimo būdai. Bet koks dviejų datų palyginimo metodas iš esmės yra dviejų datų laiko vienetų palyginimas.
Žingsnis
1 metodas iš 4: „CompaTo“naudojimas
Žingsnis 1. Naudokite palygintiTo
Objektas „Data“įgyvendina palyginamąjį, todėl 2 datas galima tiesiogiai palyginti tarpusavyje naudojant „CompareTo“metodą. Jei abi datos turi vienodą skaičių laiko vienetais, tada metodas grąžina nulį. Jei antroji data yra mažesnė už pirmąją, grąžinama reikšmė, mažesnė už nulį. Jei antroji data yra didesnė už pirmąją, metodas grąžina reikšmę, didesnę nei nulis. Jei abi datos yra vienodos, metodas grąžins nulinę vertę.
Žingsnis 2. Sukurkite kelis datos objektus
Prieš lygindami turite sukurti kelis datos objektus. Vienas iš paprasčiausių būdų tai padaryti yra klasė „SimpleDateFormat“. Ši klasė leidžia lengvai konvertuoti įvesties datos vertę į datos objektą.
SimpleDateFormat sdf = naujas SimpleDateFormat ("yyyy-MM-dd"). Norėdami deklaruoti vertę nauja „Objekto data“, kurdami datą naudokite tą patį datos formatą. Data data1 = sdf.parse ("1995-02-23"); // data1 yra 1995 m. vasario 23 d. Data data2 = sdf.parse ("2001-10-31"); // data2 yra 2001 m. spalio 31 d. Data data3 = sdf.parse ("1995-02-23"); // data3 yra 1995 m. vasario 23 d
Žingsnis 3. Palyginkite datos objektus
Šis kodas parodys kiekvieno atvejo pavyzdžius - mažesnis nei, lygus ir didesnis nei.
date1.compareTo (data2); // data1 <data2, grąžina reikšmę, mažesnę nei 0 date2.compareTo (data1); // data2> data1, grąžina reikšmę, didesnę nei 0 date1.compareTo (data3); // data1 = data3, todėl konsolėje jis išves 0
2 metodas iš 4: Lygių naudojimas po ir prieš
1 žingsnis. Po ir prieš naudokite lygų
Datas galima palyginti naudojant lygius, po ir prieš metodus. Jei dvi datos turi tą pačią laiko reikšmę, lygus metodas grąžina tikrąją. Šiame pavyzdyje bus naudojamas objektas Data, sukurtas pavyzdyje CompaTo.
2 žingsnis. Palyginkite su ankstesniu metodu
Šis kodas rodo atvejo pavyzdį, kuris pateikia teisingą ir klaidingą. Jei data1 yra data prieš datą2, metodas prieš grąžina teisingą. Priešingu atveju metodas grąžina klaidingą.
System.out.print (data1.before (data2)); // rodyti reikšmę '' true '' System.out.print (date2.before (date2)); // grąžinti reikšmę „false“
Žingsnis 3. Palyginkite naudodami metodą po
Šis kodas rodo atvejo pavyzdį, kuris grąžina teisingą ir klaidingą. Jei data2 yra data po datos1, tada metodas grąžina tikrąją. Priešingu atveju „after“metodas grąžins klaidingą.
System.out.print (data2.after (data1)); // rodyti reikšmę „true“„System.out.print“(data1.after (data2)); // rodyti reikšmę „false“
Žingsnis 4. Palyginkite su lygiu metodu
Šis kodas rodo atvejo pavyzdį, kuris grąžina teisingą ir klaidingą. Jei abi datos yra lygios, lygus metodas grąžina tikrąją. Priešingu atveju lygus metodas grąžina klaidingą.
System.out.print (date1.equals (data3)); // rodyti reikšmę „true“System.out.print (date1.equals (data2)); // rodyti reikšmę „false“
3 metodas iš 4: klasių kalendoriaus naudojimas
Žingsnis 1. Naudokite klasės kalendorių
Klasėje „Kalendorius“taip pat yra „CompaTo“, lygus, po ir prieš metodai, kurie veikia taip pat, kaip aprašyta anksčiau klasėje „Data“. Taigi, jei datos informacija yra saugoma klasės kalendoriuje, jums nereikia ištraukti datos, kad galėtumėte palyginti.
Žingsnis 2. Sukurkite kalendoriaus egzempliorių
Norėdami naudoti kursų kalendoriaus metodus, turite sukurti kelis kalendoriaus egzempliorius. Laimei, galite naudoti anksčiau sukurtos datos egzemplioriaus reikšmes.
Kalendorius cal1 = Calendar.getInstance (); // deklaruoti cal1 Kalendorius cal2 = Calendar.getInstance (); // deklaruoti cal2 Kalendorius cal3 = Calendar.getInstance (); // deklaruoti cal3 cal1.setTime (data1); // įdėti datą į cal1 cal2.setTime (data2); cal3.setTime (data3);
Žingsnis 3. Palyginkite cal1 ir cal2, naudodami ankstesnį metodą
Šis kodas išves tr reikšmę
System.out.print (cal1.before (cal2)); // grąžins vertę „true“
Žingsnis 4. Palyginkite cal1 ir cal2 naudodami metodą po
Šis kodas grąžins klaidingą, nes cal1 yra data prieš cal2.
System.out.print (cal1.after (cal2)); // grąžinti reikšmę „false“
Žingsnis 5. Palyginkite cal1 ir cal2, naudodami lygų metodą
Šis kodas parodys atvejo pavyzdį, kuris pateikia teisingą ir klaidingą. Būklė priklauso nuo lyginamo kalendoriaus egzemplioriaus. Šis kodas grąžins reikšmę „true“, tada „false“kitoje eilutėje.
System.out.println (cal1.equals (cal3)); // grąžinti reikšmę '' true '': cal1 == cal3 System.out.print (cal1.equals (cal2)); // grąžinkite reikšmę '' false '': cal1! = cal2
4 metodas iš 4: „getTime“naudojimas
1 veiksmas. Naudokite „getTime“
Taip pat galite tiesiogiai palyginti dviejų datų laiko vienetų vertes, nors du ankstesnius metodus gali būti lengviau perskaityti ir pageidautina. Taip lyginsite 2 primityvius duomenų tipus, kad galėtumėte naudoti operandus „“ir „==“.
Žingsnis 2. Sukurkite laiko objekto ilgų skaičių formatu
Kad galėtumėte palyginti datas, turite sukurti ilgio sveiko skaičiaus vertę iš anksčiau sukurto datos objekto. Laimei, „getTime“() metodas tai padarys už jus.
ilgas laikas1 = getTime (data1); // paskelbti primityvų datą1 data1 ilgas laikas2 = getTime (data2); // deklaruoti primityvią laiko datos2 reikšmę
Žingsnis 3. Atlikite mažesnį nei palyginimą
Norėdami palyginti šias dvi sveikas skaičių reikšmes, naudokite operandą, mažesnį nei (<). Kadangi laikas1 yra trumpesnis nei laikas2, pasirodys pirmasis pranešimas. Kitas teiginys įtrauktas siekiant užbaigti sintaksę.
if (laikas1 <laikas2) {System.out.println ("data1 yra data iki datos2"); // bus rodomas, nes laikas1 <laikas2} kitas {System.out.println ("data1 nėra data prieš datą2"); }
Žingsnis 4. Atlikite didesnį nei palyginimą
Norėdami palyginti šias dvi sveikas skaičių reikšmes, naudokite didesnį nei (>) operandą. Kadangi laikas1 yra ilgesnis už laiką2, pasirodys pirmasis pranešimas. Kitas teiginys įtrauktas siekiant užbaigti sintaksę.
if (laikas2> laikas1) {System.out.println ("data2 yra data po datos1"); // bus rodomas, nes laikas2> laikas1} else {System.out.println ("data2 yra ne data po datos1"); }
Žingsnis 5. Atlikite lygų palyginimą
Norėdami palyginti šiuos du sveikus skaičius, naudokite operando funkciją, kad patikrintumėte reikšmių lygybę (==). Kadangi laikas1 yra lygus laikui3, pasirodys pirmasis pranešimas. Jei programos srautas patenka į kitą teiginį, tai reiškia, kad du laikai neturi tos pačios vertės.
if (laikas1 == laikas2) {System.out.println ("abi datos vienodos"); } else {System.out.println ("Pirmasis nėra tas pats, kas antrasis"); // bus rodomas, nes laikas1! = laikas2}