4 būdai palyginti dvi datas „Java“

Turinys:

4 būdai palyginti dvi datas „Java“
4 būdai palyginti dvi datas „Java“

Video: 4 būdai palyginti dvi datas „Java“

Video: 4 būdai palyginti dvi datas „Java“
Video: Inkscape: How to Change Default Settings 2024, Balandis
Anonim

„Java“datas galima palyginti įvairiais būdais. Viduje data pateikiama kaip (ilgas) laiko taškas - milisekundžių, praėjusių nuo 1970 m. Sausio 1 d., Skaičius. „Java“programoje data yra objektas, o tai reiškia, kad ji apima kelis palyginimo metodus. Bet koks dviejų datų palyginimo metodas iš esmės palygins datų laikus.

Žingsniai

1 metodas iš 4: „CompaTo“naudojimas

4301351 1
4301351 1

Žingsnis 1. Naudokite palygintiTo

Datos įgyvendinimas Palyginamasis, todėl dvi datas galima tiesiogiai palyginti su lyginimo metodu. Jei datos skirtos tam pačiam laiko momentui, metodas grąžina nulį. Jei lyginama data yra prieš datos argumentą, grąžinama reikšmė, mažesnė už nulį. Jei lyginama data yra po datos argumento, grąžinama didesnė nei nulis vertė. Jei datos yra lygios, grąžinama 0 vertė.

4301351 2
4301351 2

Žingsnis 2. Sukurkite datos objektus

Prieš pradėdami juos lyginti, turėsite sukurti kiekvieną datos objektą. Vienas iš būdų tai padaryti yra naudoti klasę „SimpleDateFormat“. Tai leidžia lengvai įvesti datos reikšmes į datos objektus.

    SimpleDateFormat sdf = naujas SimpleDateFormat ("yyyy-MM-dd"); // Skelbiant reikšmes naujuose datos objektuose. kurdami datas 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

4301351 3
4301351 3

Žingsnis 3. Palyginkite datos objektus

Žemiau pateiktas kodas parodys kiekvieną atvejį - mažesnį, lygų ir didesnį nei.

    date1.compareTo (data2); // data1 <data2, grąžina mažiau nei 0 date2.compareTo (data1); // data2> data1, grąžina didesnę nei 0 date1.compareTo (data3); // data1 = data3, todėl konsolėje bus spausdinama 0

2 metodas iš 4: Lygių, po ir prieš

4301351 4
4301351 4

1 žingsnis. Po ir prieš naudokite lygų

Datas galima palyginti su lygiomis, po ir prieš metodus. Jei dvi datos yra skirtos tam pačiam laiko momentui, lygus metodas grįš tiesa. Pavyzdžiuose bus naudojamos anksčiau sukurtos datos iš „CompareTo“metodo.

4301351 5
4301351 5

Žingsnis 2. Palyginkite naudodami ankstesnį metodą

Žemiau pateiktas kodas rodo teisingą ir klaidingą atvejį. Jei data1 yra prieš datą2, prieš grąžina teisingą. Jei ne, prieš grąžina klaidingą.

    System.out.print (data1.before (data2)); // spausdina tikrą System.out.print (data2.before (data2)); // spausdina klaidingai

4301351 6
4301351 6

Žingsnis 3. Palyginkite naudodami metodą po

Žemiau pateiktas kodas rodo teisingą ir klaidingą atvejį. Jei data2 yra po datos1, po to pateikiama tiesa. Jei ne, grąžina klaidą.

    System.out.print (data2.after (data1)); // spausdina tiesa System.out.print (date1.after (date2)); // spausdina klaidingai

4301351 7
4301351 7

Žingsnis 4. Palyginkite, naudodami lygų metodą

Žemiau pateiktas kodas rodo teisingą ir klaidingą atvejį. Jei datos yra lygios, „equals“grąžina „true“. Jei jų nėra, lygus grąžina klaidingą.

    System.out.print (date1.equals (data3)); // spausdina tiesa System.out.print (date1.equals (data2)); // spausdina klaidingai

3 metodas iš 4: Kalendoriaus klasės naudojimas

4301351 8
4301351 8

Žingsnis 1. Naudokite kalendorių

Kalendoriaus klasėje taip pat yra „CompaTo“, lygus, po ir prieš metodus, kurie veikia taip pat, kaip aprašyta aukščiau datos klasei. Taigi, jei datos informacija yra saugoma kalendoriuje, nereikia išgauti datos, kad būtų atliktas palyginimas.

4301351 9
4301351 9

Žingsnis 2. Sukurkite kalendoriaus egzempliorius

Norėdami naudoti kalendoriaus metodus, jums reikės kelių kalendoriaus egzempliorių. Laimei, galite tiesiog pasiimti laiką iš jau sukurtų datos egzempliorių.

    Kalendorius cal1 = Calendar.getInstance (); // deklaruoja cal1 Kalendorius cal2 = Calendar.getInstance (); // deklaruoja cal2 Kalendorius cal3 = Calendar.getInstance (); // deklaruoja cal3 cal1.setTime (data1); // taikoma data cal1 cal2.setTime (data2); cal3.setTime (data3);

4301351 10
4301351 10

Žingsnis 3. Palyginkite cal1 ir cal2 naudodami anksčiau

Toliau pateiktas kodas turėtų būti atspausdintas, nes cal1 yra prieš cal2.

    System.out.print (cal1.before (cal2)); // atspausdins tiesa

4301351 11
4301351 11

Žingsnis 4. Palyginkite cal1 ir cal2 naudodami po

Žemiau pateiktas kodas turėtų būti atspausdintas klaidingai, nes cal1 yra prieš cal2.

    System.out.print (cal1.after (cal2)); // spausdina klaidingai

4301351 12
4301351 12

Žingsnis 5. Palyginkite cal1 ir cal2 naudodami lygius

Žemiau pateiktas kodas parodys tikro ir klaidingo atvejo pavyzdį. Sąlyga priklauso nuo lyginamų kalendoriaus atvejų. Kodas kitoje eilutėje turėtų atspausdinti „true“, tada „false“.

    System.out.println (cal1.equals (cal3)); // spausdina tiesa: cal1 == cal3 System.out.print (cal1.equals (cal2)); // spausdina klaidingai: cal1! = cal2

4 metodas iš 4: „getTime“naudojimas

4301351 13
4301351 13

1 veiksmas. Naudokite „getTime“

Taip pat galima tiesiogiai palyginti dviejų datų laiką, nors bet kuris iš ankstesnių metodų greičiausiai bus labiau įskaitomas ir taip pageidautinas. Tai bus dviejų primityvių duomenų tipų palyginimas, todėl tai galima padaryti naudojant „“ir „==“.

4301351 14
4301351 14

2 žingsnis. Sukurkite ilgo laiko objektus

Kad galėtumėte palyginti datas, turite sukurti ilgus sveikuosius skaičius su duomenimis iš anksčiau sukurtų datos objektų. Laimei, „getTime“() metodas atliks didžiąją dalį darbo už jus.

    ilgas laikas1 = getTime (data1); // deklaruoja primityvų laiką1 nuo datos1 ilgas laikas2 = getTime (data2); // deklaruoja primityvų laiką2 nuo datos2

4301351 15
4301351 15

Žingsnis 3. Atlikite mažiau nei palyginimą

Norėdami palyginti šias dvi sveikas skaičių reikšmes, naudokite simbolį mažesnį už (<). Kadangi laikas 1 yra trumpesnis nei 2 laikas, pirmasis pranešimas turėtų būti atspausdintas. Kitas teiginys įtrauktas siekiant tinkamos sintaksės.

    if (laikas1 <laikas2) {System.out.println ("data1 yra iki datos2"); // bus spausdinamas nuo laiko1 <laikas2} else {System.out.println ("data1 yra ne prieš data2"); }

4301351 16
4301351 16

Žingsnis 4. Atlikite didesnį nei palyginimą

Norėdami palyginti šias dvi sveikas skaičių reikšmes, naudokite simbolį, didesnį nei simbolis (>). Kadangi laikas1 yra ilgesnis nei laikas 2, pirmasis pranešimas turėtų būti atspausdintas. Kitas teiginys įtrauktas siekiant tinkamos sintaksės.

    if (laikas2> laikas1) {System.out.println ("data2 yra po datos1"); // bus spausdinamas nuo laiko2> laikas1} else {System.out.println ("data2 is not after date1"); }

4301351 17
4301351 17

Žingsnis 5. Palyginkite lygiai

Naudokite simbolį, kad patikrintumėte lygybę (==) ir palygintumėte šias dvi sveikojo skaičiaus lygybes. Kadangi laikas1 yra lygus laikui3, pirmasis pranešimas turėtų būti atspausdintas. Jei programa patenka į teiginį else, tai reiškia, kad laikas nėra lygus.

    if (laikas1 == laikas2) {System.out.println ("datos lygios"); } else {System.out.println ("datos nėra lygios"); // bus spausdinamas nuo laiko1! = laikas2}

Rekomenduojamas: