4 spôsoby, ako porovnať dva dátumy v Jave

Obsah:

4 spôsoby, ako porovnať dva dátumy v Jave
4 spôsoby, ako porovnať dva dátumy v Jave

Video: 4 spôsoby, ako porovnať dva dátumy v Jave

Video: 4 spôsoby, ako porovnať dva dátumy v Jave
Video: How To Install Python, Setup Virtual Environment VENV, Set Default Python System Path & Install Git 2024, Apríl
Anonim

Existujú rôzne spôsoby porovnávania dátumov Java. Dátum je interne reprezentovaný ako (dlhý) časový bod - počet milisekúnd, ktoré uplynuli od 1. januára 1970. V Jave je dátum objekt, čo znamená, že obsahuje viacero spôsobov porovnávania. Akýkoľvek spôsob porovnávania dvoch dátumov v zásade porovná časy dátumov.

Kroky

Metóda 1 zo 4: Použitie funkcie compareTo

4301351 1
4301351 1

Krok 1. Použite porovnávač

Dátum implementuje Porovnateľné, a tak je možné dva dátumy porovnať priamo s metódou porovnania. Ak sú dátumy pre rovnaký časový bod, metóda vráti nulu. Ak je porovnávaný dátum pred argumentom dátumu, vráti sa hodnota menšia ako nula. Ak je porovnávaný dátum za argumentom dátumu, vráti sa hodnota väčšia ako nula. Ak sú dátumy rovnaké, vráti sa hodnota 0.

4301351 2
4301351 2

Krok 2. Vytvorte objekty dátumu

Každý objekt dátumu budete musieť vytvoriť, než ich začnete porovnávať. Jedným zo spôsobov, ako to urobiť, je použiť triedu SimpleDateFormat. Umožňuje ľahké zadávanie hodnôt dátumu do objektov dátumu.

    SimpleDateFormat sdf = new 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 Dátum dátumu1 = sdf.parse ("1995-02-23"); // date1 je 23. február 1995 Dátum date2 = sdf.parse ("2001-10-31"); // date2 je 31. október 2001 Dátum date3 = sdf.parse ("1995-02-23"); // date3 je 23. február 1995

4301351 3
4301351 3

Krok 3. Porovnajte objekty s dátumom

Nasledujúci kód vám ukáže každý prípad - menej ako, rovnako a viac ako.

    date1.compareTo (dátum2); // date1 <date2, vráti menej ako 0 date2.compareTo (date1); // date2> date1, vráti hodnotu väčšiu ako 0 date1.compareTo (date3); // date1 = date3, takže sa do konzoly vytlačí 0

Metóda 2 zo 4: Používanie rovná sa, po a pred

4301351 4
4301351 4

Krok 1. Použite rovnaké, po a pred

Dátumy je možné porovnávať s metódami rovných s rovnými, po a pred. Ak sú dva dátumy pre rovnaký časový bod, metóda equals vráti hodnotu true. Príklady budú používať predtým vytvorené dátumy z metódy porovnať.

4301351 5
4301351 5

Krok 2. Porovnajte pomocou metódy pred

Nasledujúci kód zobrazuje pravdivý a nepravdivý prípad. Ak je dátum1 pred dátumom2, pred vráti hodnotu true. Ak nie je, pred vráti false.

    System.out.print (date1.before (date2)); // vypíše true System.out.print (date2.before (date2)); // tlačí false

4301351 6
4301351 6

Krok 3. Porovnajte pomocou metódy after

Nasledujúci kód zobrazuje pravdivý a nepravdivý prípad. Ak je dátum2 za dátumom1, potom za vráti hodnotu true. Ak nie je, po vráti false.

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

4301351 7
4301351 7

Krok 4. Porovnajte pomocou metódy rovná sa

Nasledujúci kód zobrazuje pravdivý a nepravdivý prípad. Ak sú dátumy rovnaké, rovná sa vráti hodnotu true. Ak nie sú, rovná sa vráti hodnotu false.

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

Metóda 3 zo 4: Použitie triedy kalendára

4301351 8
4301351 8

Krok 1. Použite kalendár

Trieda kalendára má tiež metódy compareTo, equals, after a before, ktoré fungujú rovnakým spôsobom, ako je popísané vyššie pre triedu dátumu. Ak sú teda informácie o dátume uchovávané v kalendári, nie je potrebné extrahovať dátum, aby bolo možné vykonať porovnanie.

4301351 9
4301351 9

Krok 2. Vytvorte inštancie Kalendára

Na používanie metód Kalendára budete potrebovať niekoľko inštancií Kalendára. Našťastie môžete jednoducho zachytiť časy z už vytvorených inštancií dátumu.

    Calendar cal1 = Calendar.getInstance (); // deklaruje cal1 Calendar cal2 = Calendar.getInstance (); // deklaruje cal2 Calendar cal3 = Calendar.getInstance (); // deklaruje cal3 cal1.setTime (date1); // aplikuje dátum na cal1 cal2.setTime (date2); cal3.setTime (dátum3);

4301351 10
4301351 10

Krok 3. Porovnajte cal1 a cal2 s použitím predtým

Nasledujúci kód by mal mať hodnotu true, pretože cal1 je pred cal2.

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

4301351 11
4301351 11

Krok 4. Porovnajte cal1 a cal2 pomocou after

Nasledujúci kód by sa mal vytlačiť nepravdivý, pretože cal1 je pred cal2.

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

4301351 12
4301351 12

Krok 5. Porovnajte cal1 a cal2 pomocou rovnosti

Nasledujúci kód ukáže príklad pravdivého aj nepravdivého prípadu. Podmienka závisí od porovnávaných inštancií kalendára. Na nasledujúcom riadku by mal kód vytlačiť „true“a potom „false“.

    System.out.println (cal1.equals (cal3)); // prinesie true: cal1 == cal3 System.out.print (cal1.equals (cal2)); // vypíše false: cal1! = cal2

Metóda 4 zo 4: Použitie getTime

4301351 13
4301351 13

Krok 1. Použite getTime

Je tiež možné priamo porovnať časový bod dvoch dátumov, aj keď ktorýkoľvek z predchádzajúcich prístupov bude pravdepodobne čitateľnejší a vhodnejší. Pôjde o porovnanie dvoch primitívnych dátových typov, ktoré je možné vykonať pomocou príkazov „“a „==“.

4301351 14
4301351 14

Krok 2. Vytvorte dlhodobé objekty

Pred porovnaním dátumov musíte vytvoriť dlhé celé čísla s údajmi z predtým vytvorených objektov Date. Našťastie väčšinu práce za vás urobí metóda getTime ().

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

4301351 15
4301351 15

Krok 3. Urobte menej ako porovnanie

Na porovnanie týchto dvoch celočíselných hodnôt použite symbol menej ako (<). Pretože čas1 je kratší ako čas 2, mala by sa vytlačiť prvá správa. Príkaz else je zahrnutý pre správnu syntax.

    if (time1 <time2) {System.out.println ("date1 is before date2"); // bude tlačiť od time1 <time2} else {System.out.println ("date1 is not before date2"); }

4301351 16
4301351 16

Krok 4. Vykonajte viac ako porovnanie

Na porovnanie týchto dvoch celočíselných hodnôt použite symbol väčší ako (>). Pretože čas1 je väčší ako čas 2, mala by sa vytlačiť prvá správa. Príkaz else je zahrnutý pre správnu syntax.

    if (time2> time1) {System.out.println ("date2 is after date1"); // bude tlačiť od time2> time1} else {System.out.println ("date2 is not after date1"); }

4301351 17
4301351 17

Krok 5. Vykonajte porovnanie rovnaké

Pomocou symbolu skontrolujte rovnosť (==) a porovnajte tieto dve celočíselné hodnoty. Pretože time1 sa rovná time3, 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 ("datumy su rovnake"); } else {System.out.println ("dátumy nie sú rovnaké"); // sa bude tlačiť od času1! = čas2}

Odporúča: