Primerjaj datume v Javi

Avtor: Roger Morrison
Datum Ustvarjanja: 24 September 2021
Datum Posodobitve: 21 Junij 2024
Anonim
Фильм «ЗАМЫСЕЛ» (2019) | Киностудия «Донфильм» | Смысловое кино | Русский художественный фильм
Video.: Фильм «ЗАМЫСЕЛ» (2019) | Киностудия «Донфильм» | Смысловое кино | Русский художественный фильм

Vsebina

V Javi obstaja več načinov primerjave datumov. Datum je interno predstavljen kot (dolga) časovna točka - število milisekund, ki je minilo od 1. januarja 1970. V Javi je datum objekt Date, kar pomeni, da vsebuje več metod za primerjavo datumov. Vsaka metoda primerjave dveh datumov bo v bistvu primerjala pretečeni čas obeh datumov.

Stopati

Metoda 1 od 4: Uporaba ukaza "compareTo"

  1. Uporabi primerjajTo. Date implementira ComparableDate> in tako lahko dva datuma neposredno primerjate z uporabo metode compareTo. Če datumi kažejo isti trenutek, bo metoda vrnila nič. Če je primerjani datum pred argumentom datuma, bo vrnjena negativna vrednost. Če je primerjani datum poznejši od datuma datuma, bo vrnjena pozitivna vrednost. Če so datumi enaki, se vrne nič.
  2. Ustvari predmete Date. Vsak datumski objekt boste morali ustvariti, preden ga boste lahko začeli primerjati. Eden od načinov za to je uporaba razreda SimpleDateFormat. To vam omogoča enostavno vnašanje datumov v predmete Date.

      SimpleDateFormat sdf = novo SimpleDateFormat ("llll-MM-dd"); // Za prijavljanje vrednosti v novih datumskih objektih.Pri ustvarjanju datumov uporabite isti format datuma Date date1 = sdf.parse ("1995-02-23"); // date1 je 23. februar 1995 Datum date2 = sdf.parse ("2001-10-31"); // date2 je 31. oktober 2001 Datum date3 = sdf.parse ("1995-02-23"); // date3 je 23. februarja 1995

  3. Primerjajte datume. Spodaj je prikazan vsak primer - manjši od, enak in večji od.

      date1.compareTo (date2); // date1 date2, manj kot 0 date2.compareTo (date1); // date2> date1, vrne več kot 0 date1.compareTo (date3); // date1 = date3, vrne 0

Metoda 2 od 4: Uporaba metod "enako, po in pred"

  1. Uporabite enako, po in pred. Datume lahko primerjamo med seboj z uporabo enakih, po in pred metodami. Če dva datuma označujeta isti čas, bo metoda enak vrnila "true". Primeri uporabljajo prej ustvarjene datume prek metode compareTo.
  2. Primerjajte po prej navedeni metodi. Spodnja koda prikazuje primer true in false. Če je datum1 starejši od datuma2, je rezultat resničen. Če ne, prej vrne false.

      System.out.print (date1.before (date2)); // natisne true System.out.print (date2.before (date2)); // tiskanje false

  3. Primerjajte to z metodo after. Spodnja koda prikazuje primer true in false. Če je datum2 poznejši od datuma1, potem po vrne true. Če ne, po vrne false.

      System.out.print (date2.after (date1)); // print true System.out.print (date1.after (date2)); // print false

  4. Primerjajte z uporabo metode enakih. Spodnja koda prikazuje primer true in false. Če so datumi enaki, enak vrne true. V nasprotnem primeru enak vrne false.

      System.out.print (date1.equals (date3)); // print true System.out.print (date1.equals (date2)); // print false

3. metoda od 4: Uporaba razreda Koledar

  1. Uporabite razred Koledar. Razred Calendar ima tudi metode compareTo, equals, after in before, ki delujejo na enak način, kot je opisano zgoraj za datumski razred. Torej, če so podatki o datumu shranjeni v koledarju, ni treba izvleči "datuma", temveč samo primerjati dva datuma.
  2. Ustvari primerek koledarja. Za uporabo metod koledarja potrebujete nekaj primerkov koledarja. Na srečo lahko uporabite čas, kot ga ustvarijo primerki Date.

      Koledar cal1 = Calendar.getInstance (); // razglasi cal1 koledar cal2 = Calendar.getInstance (); // razglasi cal2 Calendar cal3 = Calendar.getInstance (); // razglasi cal3 cal1.setTime (date1); // uporabi datum za cal1 cal2.setTime (date2); cal3.setTime (date3);

  3. Primerjajte cal1 in cal2 z uporabo prej. Spodnja koda vrne true, ker je cal1 prej kot cal2.

      System.out.print (cal1.before (cal2)); // natisni true

  4. Primerjaj cal1 in cal2 z uporabo po. Spodnja koda vrne false, ker je cal1 prej kot cal2.

      System.out.print (cal1.after (cal2)); // tiskanje false

  5. Primerjajte cal1 in cal2 z uporabo enakovrednosti. Spodnja koda prikazuje primer true in false. Pogoj je odvisen od primerkov koledarja, ki se primerjajo. Spodnja koda vrne "true" in nato "false" v naslednji vrstici.

      System.out.println (cal1.equals (cal3)); // tiskanje true: cal1 == cal3 System.out.print (cal1.equals (cal2)); // tiskanje napačno: cal1! = cal2

Metoda 4 od 4: Uporaba metode "getTime"

  1. Uporabite getTime. Možno je tudi neposredno primerjati dve časovni točki, čeprav bo kateri koli od zgornjih pristopov verjetno dal bolj berljive rezultate in je zato bolj zaželen. To je primerjava dveh primitivnih podatkovnih tipov, zato jo lahko izvedemo z "", ">" in "==".
  2. Ustvarite "dolge" časovne predmete. Preden lahko primerjate datume, morate iz podatkov predhodno ustvarjenih predmetov Date ustvariti dolga cela števila. Na srečo bo metoda getTime () večino dela opravila namesto vas.

      long time1 = getTime (date1); // objavi primitivni čas1 datuma1 dolg čas2 = getTime (datum2); // razglasi primitivni čas2 datuma2

  3. Uporabite enačbo "manj kot". Za primerjavo teh dveh celoštevilnih vrednosti uporabite simbol "manj kot" (). Ker je čas1 manjši od časa2, je treba prvo sporočilo natisniti na zaslon. Stavek else je vključen za pravilno skladnjo.

      if (time1 time2) {System.out.println ("date1 je prej kot date2"); // tisk, ker time1 time2} else {System.out.println ("date1 je poznejši ali enak date2"); }

  4. Naredite primerjavo "več kot". Za primerjavo teh dveh celih števil uporabite simbol "večje od" (>). Ker je čas1 večji od časa2, se prvo sporočilo natisne na zaslon. Stavek else je vključen za pravilno skladnjo.

      if (time2> time1) {System.out.println ("date2 pride za date1"); // tisk, ker time2> time1} else {System.out.println ("date2 je prej ali enak date1"); }

  5. Naredite primerjavo "enako". Za primerjavo teh dveh celih števil uporabite simbol (==). Ker je čas1 enak času3, je treba natisniti prvo sporočilo. Če program pride do stavka else, to pomeni, da časi niso enaki.

      if (time1 == time2) {System.out.println ("Datumi so enaki"); } else {System.out.println ("Datumi niso enaki"); // tisk, ker time1! = time2}