4 způsoby, jak porovnat dvě data v Javě

Obsah:

4 způsoby, jak porovnat dvě data v Javě
4 způsoby, jak porovnat dvě data v Javě

Video: 4 způsoby, jak porovnat dvě data v Javě

Video: 4 způsoby, jak porovnat dvě data v Javě
Video: Your First Java Program | Java | Tutorial 3 2024, Listopad
Anonim

Existuje mnoho způsobů, jak porovnat dvě data v programovacím jazyce Java. V počítačích je datum reprezentováno číslem (datový typ Long) v jednotkách času - tj. Počet milisekund, které uplynuly od 1. ledna 1970. V Javě je Date objekt, což znamená, že má několik metod pro porovnávání. Jakákoli metoda použitá ke srovnání dvou dat je v podstatě porovnání časových jednotek těchto dvou dat.

Krok

Metoda 1 ze 4: Použití funkce srovnávání

4301351 1
4301351 1

Krok 1. Použijte srovnávač

Objekt Date implementuje srovnatelné, takže 2 data lze navzájem porovnávat přímo metodou compareTo. Pokud mají obě data stejný počet v časových jednotkách, pak metoda vrátí nulu. Pokud je druhé datum menší než první, vrátí se hodnota menší než nula. Pokud je druhé datum větší než první, metoda vrátí hodnotu větší než nula. Pokud jsou obě data stejná, pak metoda vrátí hodnotu null.

4301351 2
4301351 2

Krok 2. Vytvořte více objektů Datum

Před jejich porovnáním musíte vytvořit více objektů Date. Jedním z nejjednodušších způsobů, jak to udělat, je použít třídu SimpleDateFormat. Tato třída usnadňuje převod vstupní hodnoty data na objekt Date.

    SimpleDateFormat sdf = nový SimpleDateFormat ("rrrr-MM-dd"). Chcete -li deklarovat hodnotu v novém '' Objektovém datu '', použijte při vytváření data stejný formát data. Datum datum1 = sdf.parse ("1995-02-23"); // datum1 je 23. února 1995 Datum datum2 = sdf.parse ("2001-10-31"); // datum2 je 31. října 2001 Datum datum3 = sdf.parse ("1995-02-23"); // date3 je 23. února 1995

4301351 3
4301351 3

Krok 3. Porovnejte objekty Date

Následující kód vám ukáže příklady pro každý případ - menší než, stejný a větší než.

    date1.compareTo (date2); // date1 <date2, vrací hodnotu menší než 0 date2.compareTo (date1); // datum2> datum1, vrátí hodnotu větší než 0 date1.compareTo (date3); // date1 = date3, takže bude na konzole vydávat 0

Metoda 2 ze 4: Použití Equals, After a Before

4301351 4
4301351 4

Krok 1. Použijte equals, after a before

Data lze porovnávat pomocí metod equals, after a before. Pokud mají dvě data v čase stejnou hodnotu, metoda equals vrátí hodnotu true. Následující příklad bude používat Date objekt vytvořený v příkladové metodě porovnáníTo.

4301351 5
4301351 5

Krok 2. Porovnejte s předchozí metodou

Následující kód ukazuje příklad případu, který vrací true a false. Pokud date1 je datum před date2, metoda before vrátí true. V opačném případě metoda before vrátí hodnotu false.

    System.out.print (date1.before (date2)); // zobrazí hodnotu '' true '' System.out.print (date2.before (date2)); // vrátí hodnotu '' false ''

4301351 6
4301351 6

Krok 3. Porovnejte pomocí metody after

Následující kód ukazuje příklad případu, který vrací true a false. Pokud date2 je datum po date1, metoda after vrací true. V opačném případě metoda after vrátí hodnotu false.

    System.out.print (date2.after (date1)); // zobrazí hodnotu '' true '' System.out.print (date1.after (date2)); // zobrazí hodnotu '' false ''

4301351 7
4301351 7

Krok 4. Porovnejte s metodou equals

Následující kód ukazuje příklad případu, který vrací true a false. Pokud jsou obě data stejná, metoda equals vrátí hodnotu true. V opačném případě metoda equals vrátí hodnotu false.

    System.out.print (date1.equals (date3)); // zobrazí hodnotu '' true '' System.out.print (date1.equals (date2)); // zobrazí hodnotu '' false ''

Metoda 3 ze 4: Použití Kalendáře tříd

4301351 8
4301351 8

Krok 1. Použijte třídní kalendář

Třída Calendar má také metody compareTo, equals, after a before, které fungují stejně jako metody popsané dříve pro třídu Date. Pokud jsou tedy informace o datu uloženy v Kalendáři tříd, nemusíte extrahovat datum, abyste mohli provést srovnání.

4301351 9
4301351 9

Krok 2. Vytvořte instanci Kalendáře

Chcete -li používat metody v Kalendáři tříd, musíte vytvořit více instancí Kalendáře. Naštěstí můžete použít hodnoty z dříve vytvořené instance Date.

    Calendar cal1 = Calendar.getInstance (); // deklarace cal1 Calendar cal2 = Calendar.getInstance (); // deklarace cal2 Calendar cal3 = Calendar.getInstance (); // deklarace cal3 cal1.setTime (date1); // vložte datum do cal1 cal2.setTime (date2); cal3.setTime (date3);

4301351 10
4301351 10

Krok 3. Porovnejte cal1 a cal2 pomocí metody before

Následující kód vygeneruje hodnotu tr

    System.out.print (cal1.before (cal2)); // vrátí hodnotu '' true ''

4301351 11
4301351 11

Krok 4. Porovnejte cal1 a cal2 pomocí metody after

Následující kód vrátí hodnotu false, protože cal1 je datum před cal2.

    System.out.print (cal1.after (cal2)); // vrátí hodnotu '' false ''

4301351 12
4301351 12

Krok 5. Porovnejte cal1 a cal2 pomocí metody equals

Následující kód zobrazí příklad případu, který vrací true a false. Stav závisí na porovnávané instanci Kalendáře. Následující kód vrátí hodnotu „true“a poté „false“na dalším řádku.

    System.out.println (cal1.equals (cal3)); // vrátí hodnotu '' true '': cal1 == cal3 System.out.print (cal1.equals (cal2)); // vrátí hodnotu '' false '': cal1! = cal2

Metoda 4 ze 4: Použití getTime

4301351 13
4301351 13

Krok 1. Použijte getTime

Můžete také přímo porovnat hodnoty časových jednotek dvou dat, ačkoli předchozí dvě metody mohou být čitelnější a vhodnější. Tímto způsobem budete porovnávat 2 primitivní datové typy, takže můžete použít operandy „“a „==“.

4301351 14
4301351 14

Krok 2. Vytvořte časový objekt ve formátu Long number

Než budete moci porovnávat data, musíte z dříve vytvořeného objektu Date vytvořit hodnotu Long Integer. Naštěstí to za vás udělá metoda getTime ().

    long time1 = getTime (date1); // deklarujte primitivní time1 of date1 long time2 = getTime (date2); // deklarujte primitivní hodnotu time2 data2

4301351 15
4301351 15

Krok 3. Proveďte méně než srovnání

K porovnání těchto dvou celočíselných hodnot použijte operand menší než (<). Protože time1 je menší než time2, objeví se první zpráva. Pro dokončení syntaxe je zahrnut příkaz else.

    if (time1 <time2) {System.out.println ("date1 is the date before date2"); // se zobrazí, protože time1 <time2} else {System.out.println ("date1 is a date before date2"); }

4301351 16
4301351 16

Krok 4. Proveďte větší než srovnání

K porovnání těchto dvou celočíselných hodnot použijte operand větší než (>). Protože time1 je větší než time2, zobrazí se první zpráva. Pro dokončení syntaxe je zahrnut příkaz else.

    if (time2> time1) {System.out.println ("date2 is the date after date1"); // se zobrazí, protože time2> time1} else {System.out.println ("date2 is the date after date1"); }

4301351 17
4301351 17

Krok 5. Proveďte srovnávací srovnání

Pomocí funkce operandu zkontrolujte rovnost hodnot (==) a porovnejte tato dvě celá čísla. Protože time1 se rovná time3, objeví se první zpráva. Pokud tok programu přejde do příkazu else, znamená to, že dva časy nemají stejnou hodnotu.

    if (time1 == time2) {System.out.println ("obě data jsou stejná"); } else {System.out.println ("1. není totéž co 2."); // se zobrazí, protože time1! = time2}

Doporučuje: