4 sposoby na porównanie dwóch dat w Javie

Spisu treści:

4 sposoby na porównanie dwóch dat w Javie
4 sposoby na porównanie dwóch dat w Javie

Wideo: 4 sposoby na porównanie dwóch dat w Javie

Wideo: 4 sposoby na porównanie dwóch dat w Javie
Wideo: Inkscape: How to Change Default Settings 2024, Kwiecień
Anonim

Istnieje wiele sposobów porównywania dat Java. Wewnętrznie data jest reprezentowana jako (długi) punkt w czasie - liczba milisekund, które upłynęły od 1 stycznia 1970 roku. W Javie Data jest obiektem, co oznacza, że zawiera wiele metod porównania. Każda metoda porównywania dwóch dat będzie zasadniczo porównywać czasy dat.

Kroki

Metoda 1 z 4: Korzystanie z porównania do

4301351 1
4301351 1

Krok 1. Użyj porównania do

Date implementuje Comparable, dzięki czemu dwie daty mogą być porównywane bezpośrednio za pomocą metody CompareTo. Jeśli daty dotyczą tego samego punktu w czasie, metoda zwraca zero. Jeśli porównywana data jest przed argumentem daty, zwracana jest wartość mniejsza niż zero. Jeśli porównywana data jest po argumencie date, zwracana jest wartość większa od zera. Jeśli daty są równe, zwracana jest wartość 0.

4301351 2
4301351 2

Krok 2. Utwórz obiekty daty

Będziesz musiał utworzyć każdy obiekt daty, zanim zaczniesz je porównywać. Jednym ze sposobów na to jest użycie klasy SimpleDateFormat. Pozwala na łatwe wprowadzanie wartości dat do obiektów dat.

    SimpleDateFormat sdf = new SimpleDateFormat("rrrr-MM-dd"); //Dla deklarowania wartości w nowych obiektach daty. używaj tego samego formatu daty podczas tworzenia dat Date date1 = sdf.parse("1995-02-23"); //data1 to 23 lutego 1995 Data data2 = sdf.parse("2001-10-31"); //data2 to 31 października 2001 Data data3 = sdf.parse("1995-02-23"); //data3 to 23 lutego 1995

4301351 3
4301351 3

Krok 3. Porównaj obiekty daty

Poniższy kod pokaże Ci każdy przypadek - mniejszy niż, równy i większy niż.

    data1.porównaj z(data2); //data1 < data2, zwraca mniej niż 0 data2.compareTo(data1); //data2 > data1, zwraca więcej niż 0 data1.compareTo(data3); //data1 = data3, więc wypisze 0 do konsoli

Metoda 2 z 4: Używanie równości, po i przed

4301351 4
4301351 4

Krok 1. Użyj równych, po i przed

Daty można porównać z równymi, po i przed metodami. Jeśli dwie daty dotyczą tego samego punktu w czasie, metoda równości zwróci true. W przykładach wykorzystane zostaną wcześniej utworzone daty z metody CompareTo.

4301351 5
4301351 5

Krok 2. Porównaj używając metody „przed”

Poniższy kod pokazuje prawdziwe i fałszywe przypadki. Jeśli data1 jest wcześniejsza niż data2, before zwraca prawdę. Jeśli tak nie jest, before zwraca false.

    System.out.print(data1.przed(data2)); //wypisuje prawdę System.out.print(data2.before(data2)); //wypisuje fałsz

4301351 6
4301351 6

Krok 3. Porównaj za pomocą metody po

Poniższy kod pokazuje prawdziwe i fałszywe przypadki. Jeśli data2 jest po dacie1, after zwraca prawdę. Jeśli nie, after zwraca false.

    System.out.print(data2.after(data1));//wydrukowuje prawda System.out.print(data1.after(data2));//wydrukowuje fałsz

4301351 7
4301351 7

Krok 4. Porównaj za pomocą metody równości

Poniższy kod pokazuje prawdziwe i fałszywe przypadki. Jeśli daty są równe, równa się zwraca prawdę. Jeśli tak nie jest, równa się zwraca fałsz.

    System.out.print(data1.equals(data3));//wydrukowuje prawda System.out.print(data1.equals(data2));//wydrukowuje fałsz

Metoda 3 z 4: Korzystanie z klasy Calendar

4301351 8
4301351 8

Krok 1. Użyj kalendarza

Klasa calendar ma również metody CompareTo, equals, after i before, które działają w taki sam sposób, jak opisano powyżej dla klasy date. Jeśli więc informacje o dacie są przechowywane w kalendarzu, nie ma potrzeby wyodrębniania daty tylko w celu porównania.

4301351 9
4301351 9

Krok 2. Utwórz instancje Kalendarza

Aby korzystać z metod Kalendarza, potrzebujesz kilku wystąpień Kalendarza. Na szczęście możesz po prostu pobrać czasy z już utworzonych instancji Date.

    Kalendarz cal1 = Kalendarz.getInstance(); //deklaruje cal1 Kalendarz cal2 = Calendar.getInstance(); //deklaruje cal2 Kalendarz cal3 = Calendar.getInstance(); //deklaruje cal3 cal1.setTime(data1); //stosuje datę do cal1 cal2.setTime(data2); cal3.setTime(data3);

4301351 10
4301351 10

Krok 3. Porównaj cal1 i cal2 za pomocą wcześniej

Poniższy kod powinien wypisać true, ponieważ cal1 jest przed cal2.

    System.out.print(cal1.before(cal2)); //wypisze prawda

4301351 11
4301351 11

Krok 4. Porównaj cal1 i cal2 używając after

Poniższy kod powinien wypisać false, ponieważ cal1 jest przed cal2.

    System.out.print(cal1.after(cal2)); //wypisuje fałsz

4301351 12
4301351 12

Krok 5. Porównaj cal1 i cal2 używając równań

Poniższy kod pokaże przykład prawdziwej i fałszywej sprawy. Warunek zależy od porównywanych instancji kalendarza. Kod powinien wypisać „prawda”, a następnie „fałsz” w następnym wierszu.

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

Metoda 4 z 4: Korzystanie z getTime

4301351 13
4301351 13

Krok 1. Użyj getTime

Możliwe jest również bezpośrednie porównanie punktu czasowego dwóch dat, chociaż każde z poprzednich podejść będzie prawdopodobnie bardziej czytelne i dlatego preferowane. Będzie to porównanie dwóch podstawowych typów danych, więc można to zrobić za pomocą "" i "==".

4301351 14
4301351 14

Krok 2. Utwórz obiekty długiego czasu

Zanim będziesz mógł porównać daty, musisz utworzyć długie liczby całkowite z danymi z wcześniej utworzonych obiektów Date. Na szczęście metoda getTime() wykona większość pracy za Ciebie.

    długi czas1 = getTime(data1); //deklaruje prymitywny czas1 od daty1 długi czas2 = getTime(data2); //deklaruje prymitywny time2 od date2

4301351 15
4301351 15

Krok 3. Zrób mniej niż porównanie

Użyj symbolu mniej niż (<), aby porównać te dwie wartości całkowite. Ponieważ czas 1 jest krótszy niż czas 2, powinna zostać wydrukowana pierwsza wiadomość. Instrukcja else została dołączona dla prawidłowej składni.

    if(time1 < time2){ System.out.println("data1 jest wcześniejsza niż data2"); //drukuje od czasu1 <czas2 } else{ System.out.println("data1 nie jest wcześniejsza niż data2"); }

4301351 16
4301351 16

Krok 4. Zrób więcej niż porównanie

Użyj symbolu większego niż (>), aby porównać te dwie wartości całkowite. Ponieważ czas 1 jest większy niż czas 2, powinna zostać wydrukowana pierwsza wiadomość. Instrukcja else została dołączona dla prawidłowej składni.

    if(time2 > time1){ System.out.println("data2 jest po dacie1"); //drukuje od czasu czas2 > czas1 } else{ System.out.println("data2 nie jest późniejsza niż data1"); }

4301351 17
4301351 17

Krok 5. Dokonaj porównania równości

Użyj symbolu, aby sprawdzić równość (==), aby porównać te dwie wartości całkowite pod kątem równości. Ponieważ time1 jest równy time3, powinna zostać wydrukowana pierwsza wiadomość. Jeśli program dotrze do instrukcji else, oznacza to, że czasy nie są równe.

    if(time1 == time2){ System.out.println("daty są równe"); } else{ System.out.println("daty nie są równe"); //drukuje od czasu 1 != czas 2 }

Zalecana: