Palyginkite „Java“ datas

Autorius: Roger Morrison
Kūrybos Data: 24 Rugsėjo Mėn 2021
Atnaujinimo Data: 1 Liepos Mėn 2024
Anonim
Ugdymas karjerai - Programuotojo specialybė
Video.: Ugdymas karjerai - Programuotojo specialybė

Turinys

Yra keletas būdų, kaip palyginti „Java“ datas. Viduje data pateikiama kaip (ilgasis) laiko taškas - milisekundžių, praėjusių nuo 1970 m. Sausio 1 d., Skaičius. „Java“ programoje data yra objektas Data, o tai reiškia, kad joje yra keli metodai datoms palyginti. Bet kuris dviejų datų palyginimo metodas iš esmės palygins praėjusį abiejų datų laiką.

Žengti

1 metodas iš 4: naudokite komandą „palyginti“

  1. Naudokite palyginti. Datos įgyvendina „ComparableDate>“, taigi dvi datas galima tiesiogiai palyginti tarpusavyje naudojant „palygintiTo“ metodą. Jei datos nurodo tą patį laiko momentą, metodas grąžins nulį. Jei palyginama data yra prieš datos argumentą, bus grąžinta neigiama vertė. Jei palyginama data yra vėlesnė nei argumento data, tada bus grąžinta teigiama reikšmė. Jei datos yra vienodos, grąžinama nulis.
  2. Sukurkite objektus Data. Prieš pradėdami juos lyginti, turėsite sukurti kiekvieną datos objektą. Vienas iš būdų tai padaryti yra „SimpleDateFormat“ klasės taikymas. Tai leidžia lengvai įvesti datas objektuose Data.

      SimpleDateFormat sdf = naujas SimpleDateFormat ("MMMM-MM-dd"); // Vertėms deklaruoti naujos datos objektuose.Kurdami datas naudokite tą patį datos formatą Date date1 = 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

  3. Palyginkite datos objektus. Žemiau parodytas kiekvienas atvejis - mažesnis už, lygus ir didesnis už.

      data1.compareTo (data2); // data1 data2, mažiau nei 0 data2.compareTo (data1); // data2> data1, pateikia didesne nei 0 data1.compareTo (data3); // data1 = data3, grąžina 0

2 metodas iš 4: Naudojant metodus „lygu, po ir prieš“

  1. Po ir prieš naudokite lygias. Datas galima palyginti tarpusavyje naudojant metodus „lygu“, „po“ ir „prieš“. Jei dvi datos nurodo tą patį laiką, metodas „lygu“ grąžins „tiesa“. Pavyzdžiuose anksčiau sukurtos datos naudojamos naudojant „palygintiTo“ metodą.
  2. Palyginkite naudodami metodą prieš. Žemiau pateiktas kodas rodo tikrovės ir melo atvejį. Jei data1 yra ankstesnė už datą2, rezultatas yra teisingas. Jei ne, prieš grąžinant klaidingą.

      System.out.print (data1.before (data2)); // spausdinti true System.out.print (data2.before (data2)); // spausdinti klaidingą

  3. Palyginkite tai su metodu po. Žemiau pateiktas kodas rodo tikrovės ir melo atvejį. Jei data2 yra vėlesnė nei data1, tada po grąžina true. Jei ne, po grąžinimo klaidinga.

      System.out.print (data2.after (data1)); // spausdinti tikrą System.out.print (data1.after (data2)); // spausdinti klaidingą

  4. Palyginkite taikydami lygių metodą. Žemiau pateiktas kodas rodo tikrovės ir melo atvejį. Jei datos yra vienodos, lygi grąžinama reikšmė true. Jei ne, lygus grąžina klaidingą.

      System.out.print (data1.equals (data3)); // spausdinti tikrąją System.out.print (data1.equals (data2)); // spausdinti klaidingą

3 metodas iš 4: Kalendoriaus klasės naudojimas

  1. Naudokitės Kalendoriaus klase. „Kalendoriaus“ klasėje taip pat yra metodai „palyginti“, „lygu“, „po“ ir „prieš“, kurie veikia taip pat, kaip aprašyta aukščiau datos klasei. Taigi, jei datos duomenys saugomi kalendoriuje, nereikia išgauti „datos“, tereikia palyginti dvi datas.
  2. Sukurti kalendoriaus egzempliorių. Norint naudoti kalendoriaus metodus, jums reikia kelių kalendoriaus egzempliorių. Laimei, galite naudoti laiką, kurį sugeneruoja egzemplioriai Data.

      Kalendorius cal1 = Calendar.getInstance (); // deklaruoja cal1 kalendorių cal2 = Calendar.getInstance (); // deklaruoja cal2 kalendorių cal3 = Calendar.getInstance (); // deklaruoja cal3 cal1.setTime (data1); // taiko datą cal1 cal2.setTime (data2); cal3.setTime (data3);

  3. Palyginkite cal1 ir cal2 naudodami anksčiau. Žemiau pateiktas kodas pateikia true, nes cal1 yra ankstesnis nei cal2.

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

  4. Palyginkite cal1 ir cal2 naudodami po. Žemiau pateiktas kodas pateikia klaidingą, nes cal1 yra ankstesnis už cal2.

      System.out.print (cal1.after (cal2)); // spausdinti klaidingą

  5. Palyginkite cal1 ir cal2 naudodami lygias. Žemiau pateiktas kodas rodo tikros ir neteisingos pavyzdį. Sąlyga priklauso nuo palyginamų kalendoriaus egzempliorių. Žemiau pateiktas kodas kitoje eilutėje grąžina „true“, tada - „false“.

      System.out.println (cal1.equals (cal3)); // spausdinti true: cal1 == cal3 System.out.print (cal1.equals (cal2)); // spausdinti klaidingą: cal1! = cal2

4 metodas iš 4: „getTime“ metodo naudojimas

  1. Naudokite „getTime“. Taip pat galima tiesiogiai palyginti du laiko taškus, nors bet kuris iš pirmiau pateiktų metodų greičiausiai duoda daugiau skaitomų rezultatų ir todėl yra pageidaujamas. Tai yra dviejų primityvių duomenų tipų palyginimas, todėl tai galima padaryti su "", ">" ir "==".
  2. Sukurkite „ilgo“ laiko objektus. Kad galėtumėte palyginti datas, turite sukurti ilgus sveikus skaičius iš anksčiau sukurtų objektų „Data“ duomenų. Laimei, daugumą darbų už jus atliks „getTime“ () metodas.

      ilgas laikas1 = getTime (data1); // paskelbia primityvų data1 data1 ilgą laiką2 = getTime (data2); // paskelbia primityvų data2 datą2

  3. Naudokite „mažiau nei“ lygtį. Norėdami palyginti šias dvi sveiko skaičiaus reikšmes, naudokite simbolį „mažiau nei“ (). Kadangi laikas1 yra mažesnis nei laikas2, pirmasis pranešimas turėtų būti atspausdintas ekrane. Pareikštas teiginys yra teisingos sintaksės.

      if (laikas1 laikas2) {System.out.println ("data1 yra ankstesnė nei data2"); // spausdinti, nes laikas1 laikas2} kitas {System.out.println ("data1 yra vėlesnė arba lygi datai2"); }

  4. Atlikite palyginimą „didesnis nei“. Norėdami palyginti šiuos du skaičius, naudokite simbolį „didesnis nei“ (>). Kadangi laikas1 yra didesnis nei laikas2, pirmasis pranešimas atspausdinamas ekrane. Pareiškimas „else“ yra įtrauktas į teisingą sintaksę.

      if (laikas2> laikas1) {System.out.println ("data2 ateina po datos1"); // spausdinti, nes laikas2> laikas1} kitas {System.out.println ("data2 yra ankstesnė arba lygi datai1"); }

  5. Atlikite „lygu“ palyginimą. Norėdami palyginti šiuos du skaičius, naudokite simbolį (==). Kadangi laikas1 yra lygus laikas3, reikia išspausdinti pirmąjį pranešimą. Jei programa patenka į teiginį „else“, tai reiškia, kad laikas nėra tas pats.

      if (laikas1 == laikas2) {System.out.println ("Datos yra lygios"); } else {System.out.println ("Datos nėra lygios"); // spausdinti, nes laikas1! = laikas2}