Porovnajte dátumy v Jave

Autor: Roger Morrison
Dátum Stvorenia: 24 September 2021
Dátum Aktualizácie: 1 V Júli 2024
Anonim
Porovnajte dátumy v Jave - Avíza
Porovnajte dátumy v Jave - Avíza

Obsah

Existuje niekoľko spôsobov, ako porovnať dátumy v Jave. Vnútorne je dátum reprezentovaný ako (dlhý) časový bod - počet milisekúnd, ktoré uplynuli od 1. januára 1970. V Jave je date objekt Date, čo znamená, že obsahuje viac metód na porovnávanie dátumov. Akákoľvek metóda porovnania dvoch dátumov bude v zásade porovnávať uplynulý čas oboch dátumov.

Na krok

Metóda 1 zo 4: Použitie príkazu „compareTo“

  1. Použite porovnanie. Dátum implementuje ComparableDate>, a tak je možné priamo porovnávať dva dátumy pomocou metódy porovnania. Ak dátumy označujú rovnaký okamih v čase, metóda vráti nulu. Ak je porovnávaný dátum pred argumentom dátum, vráti sa záporná hodnota. Ak je porovnávaným dátumom neskorší dátum ako dátumový argument, vráti sa kladná hodnota. Ak sú dátumy rovnaké, vráti sa nula.
  2. Vytvorte objekty Date. Predtým, ako budete môcť začať porovnávať, budete musieť vytvoriť každý dátumový objekt. Jedným zo spôsobov, ako to urobiť, je použiť triedu SimpleDateFormat. Takto môžete ľahko zadávať dátumy do objektov dátumu.

      SimpleDateFormat sdf = nový SimpleDateFormat ("rrrr-MM-dd"); // Na deklarovanie hodnôt v nových objektoch dátumu.Pri vytváraní dátumov použite rovnaký formát dátumu Date date date1 = sdf.parse ("1995-02-23"); // date1 is 23. February 1995 Date date2 = sdf.parse ("2001-10-31"); // date2 is 31. October 2001 Date date3 = sdf.parse ("1995-02-23"); // date3 is 23. February 1995

  3. Porovnajte objekty dátumu. Nasledujúci text zobrazuje každý prípad - menší ako, rovný a väčší ako.

      date1.compareTo (date2); // date1 date2, menej ako 0 date2.compareTo (date1); // date2> date1, returns greater than 0 date1.compareTo (date3); // date1 = date3, vracia 0

Metóda 2 zo 4: Použitie metód „rovná sa, po a pred“

  1. Používajte rovná sa, po a pred. Dátumy je možné navzájom porovnávať pomocou metód rovnosti, po a pred. Ak dva dátumy označujú rovnaký čas, metóda equals vráti hodnotu „true“. V príkladoch sa používajú predtým vytvorené dátumy pomocou metódy compareTo.
  2. Porovnajte pomocou metódy before. Nasledujúci kód zobrazuje prípady true a false. Ak je dátum1 skorší ako dátum2, výsledok je pravdivý. Ak nie, pred vráti nepravdivé.

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

  3. Porovnajte to s metódou after. Nasledujúci kód zobrazuje prípady true a false. Ak je dátum2 neskorší ako dátum1, potom po návratoch bude hodnota true. Ak nie, po návrate nepravdivé.

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

  4. Porovnajte pomocou metódy rovnosti. Nasledujúci kód zobrazuje prípady true a false. Ak sú dátumy rovnaké, funkcia rovná sa vráti hodnotu true. Ak nie, rovná sa vráti nepravdivá.

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

Metóda 3 zo 4: Používanie triedy Calendar

  1. Použite triedu Kalendár. Trieda Calendar má tiež metódy compareTo, equals, after a before, ktoré fungujú rovnakým spôsobom, ako je popísané vyššie pre triedu date. Takže ak sú údaje o dátume uchovávané v kalendári, nie je potrebné extrahovať „dátum“, iba na porovnanie dvoch dátumov.
  2. Vytvorte inštanciu kalendára. Na použitie metód kalendára sú potrebné niektoré inštancie kalendára. Našťastie môžete použiť čas vygenerovaný inštanciami Date.

      Calendar cal1 = Calendar.getInstance (); // deklaruje cal1 Calendar cal2 = Calendar.getInstance (); // deklaruje cal2 Calendar cal3 = Calendar.getInstance (); // deklaruje cal3 cal1.setTime (date1); // použije dátum na cal1 cal2.setTime (date2); cal3.setTime (date3);

  3. Porovnajte cal1 a cal2 s použitím skôr. Nasledujúci kód vráti hodnotu true, pretože cal1 je skoršia ako cal2.

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

  4. Porovnajte cal1 a cal2 pomocou after. Nasledujúci kód vráti hodnotu false, pretože hodnota cal1 je skoršia ako hodnota cal2.

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

  5. Porovnajte cal1 a cal2 pomocou equals. Nasledujúci kód zobrazuje príklad hodnoty true aj false. Podmienka závisí od porovnávaných inštancií kalendára. Nasledujúci kód vráti v nasledujúcom riadku hodnotu „true“ a potom hodnotu „false“.

      System.out.println (cal1.equals (cal3)); // tlač true: cal1 == cal3 System.out.print (cal1.equals (cal2)); // print false: cal1! = cal2

Metóda 4 zo 4: Použitie metódy „getTime“

  1. Použite getTime. Je tiež možné priamo porovnať dva časové body, hoci ktorýkoľvek z vyššie uvedených prístupov pravdepodobne prinesie čitateľnejšie výsledky, a je preto preferovaný. Toto je porovnanie dvoch primitívnych typov údajov, ktoré je možné vykonať pomocou znakov „“, „>“ a „==“.
  2. Vytvorte „dlhý“ objekt. Pred porovnaním dátumov musíte vytvoriť dlhé celé čísla z údajov predtým vytvorených objektov dátumu. Väčšinu práce za vás našťastie urobí metóda getTime ().

      long time1 = getTime (date1); // deklaruje primitívny čas1 z dátumu1 dlhý čas2 = getTime (dátum2); // deklaruje primitívny čas2 dátumu2

  3. Použite rovnicu „menej ako“. Na porovnanie týchto dvoch celočíselných hodnôt použite symbol „(“) (). Pretože čas 1 je kratší ako čas 2, prvá správa by sa mala vytlačiť na obrazovku. Pre správnu syntax je zahrnutý aj príkaz else.

      if (time1 time2) {System.out.println ("date1 is earlier than date2"); // tlač pretože time1 time2} else {System.out.println ("date1 je neskorší alebo rovný date2"); }

  4. Urobte porovnanie „väčšie ako“. Na porovnanie týchto dvoch celých čísel použite symbol „väčšie ako“ (>). Pretože čas 1 je väčší ako čas 2, prvá správa sa vytlačí na obrazovku. Pre správnu syntax je zahrnutý aj príkaz else.

      if (time2> time1) {System.out.println ("date2 comes after date1"); // print because time2> time1} else {System.out.println ("date2 is earlier than or equal to date1"); }

  5. Urobte porovnanie „rovná sa“. Na porovnanie týchto dvoch celých čísel použite symbol (==). Pretože čas 1 sa rovná času 3, mala by sa vytlačiť prvá správa. Ak sa program dostane k príkazu else, znamená to, že časy nie sú rovnaké.

      if (time1 == time2) {System.out.println ("Dátumy sú rovnaké"); } else {System.out.println ("Dátumy sa nerovnaju"); // tlač, pretože time1! = time2}