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: Your First Java Program | Java | Tutorial 3 2024, Może
Anonim

Istnieje wiele sposobów porównywania dwóch dat w języku programowania Java. W komputerach data jest reprezentowana przez liczbę (typ danych Long) w jednostkach czasu, czyli liczbę milisekund, które upłynęły od 1 stycznia 1970 roku. W Javie Data jest obiektem, co oznacza, że kilka metod dokonywania porównań. Każda metoda używana do porównywania dwóch dat jest zasadniczo porównywaniem jednostek czasu dwóch dat.

Krok

Metoda 1 z 4: Korzystanie z porównania do

4301351 1
4301351 1

Krok 1. Użyj porównania do

Obiekt Date implementuje Comparable, dzięki czemu 2 daty mogą być ze sobą porównywane bezpośrednio za pomocą metody CompareTo. Jeśli obie daty mają taką samą liczbę w jednostkach czasu, metoda zwraca zero. Jeśli druga data jest mniejsza niż pierwsza, zwracana jest wartość mniejsza niż zero. Jeśli druga data jest większa niż pierwsza, metoda zwraca wartość większą od zera. Jeśli obie daty są takie same, metoda zwróci wartość null.

4301351 2
4301351 2

Krok 2. Utwórz wiele obiektów Date

Musisz utworzyć wiele obiektów Date przed ich porównaniem. Jednym z najprostszych sposobów na to jest użycie klasy SimpleDateFormat. Ta klasa ułatwia konwersję wejściowej wartości daty na obiekt Date.

    SimpleDateFormat sdf = new SimpleDateFormat("rrrr-MM-dd"). Aby zadeklarować wartość w nowej „Data obiektu”, użyj tego samego formatu daty podczas tworzenia daty. Data data1 = sdf.parse("23.02.1995"); //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 Date

Poniższy kod pokaże Ci przykłady dla każdego przypadku - mniejsze niż, równe i większe niż.

    data1.porównaj z(data2); //data1 < data2, zwraca wartość mniejszą niż 0 date2.compareTo(data1); //data2 > data1, zwraca wartość większą niż 0 data1.compareTo(data3); //data1 = data3, więc wyświetli 0 na 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ównywać za pomocą metod równości, po i przed. Jeśli dwie daty mają taką samą wartość w czasie, metoda równości zwraca true. Poniższy przykład użyje obiektu Date utworzonego w przykładowej metodzie CompareTo.

4301351 5
4301351 5

Krok 2. Porównaj z poprzednią metodą

Poniższy kod przedstawia przykładowy przypadek, który zwraca true i false. Jeśli date1 jest datą przed datą2, metoda before zwraca true. W przeciwnym razie metoda before zwraca false.

    System.out.print(data1.przed(data2)); // wyświetl wartość ''prawda'' System.out.print(data2.before(data2)); // zwróć wartość ''false''

4301351 6
4301351 6

Krok 3. Porównaj za pomocą metody po

Poniższy kod przedstawia przykładowy przypadek, który zwraca true i false. Jeśli date2 jest datą po dacie1, metoda after zwraca true. W przeciwnym razie metoda after zwróci false.

    System.out.print(date2.after(date1));//wyświetl wartość „true” System.out.print(date1.after(date2));//wyświetl wartość „false”

4301351 7
4301351 7

Krok 4. Porównaj z metodą równości

Poniższy kod przedstawia przykładowy przypadek, który zwraca true i false. Jeśli obie daty są równe, metoda równości zwraca true. W przeciwnym razie metoda równości zwraca false.

    System.out.print(date1.equals(date3)); // wyświetl wartość „true” System.out.print(date1.equals(date2));// wyświetl wartość „false”

Metoda 3 z 4: Korzystanie z kalendarza klas

4301351 8
4301351 8

Krok 1. Użyj kalendarza zajęć

Klasa Calendar ma również metody CompareTo, equals, after i before, które działają tak samo jak te opisane wcześniej dla klasy Date. Jeśli więc informacje o dacie są przechowywane w kalendarzu zajęć, nie musisz wyodrębniać daty tylko w celu porównania.

4301351 9
4301351 9

Krok 2. Utwórz instancję Kalendarza

Aby korzystać z metod w Class Calendar, musisz utworzyć wiele instancji Calendar. Na szczęście można wykorzystać wartości z utworzonej wcześniej instancji Date.

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

4301351 10
4301351 10

Krok 3. Porównaj cal1 i cal2 metodą przed

Poniższy kod wyświetli wartość tr

    System.out.print(cal1.before(cal2)); //zwróci wartość „prawda”

4301351 11
4301351 11

Krok 4. Porównaj cal1 i cal2 za pomocą metody after

Poniższy kod zwróci false, ponieważ cal1 to data przed cal2.

    System.out.print(cal1.after(cal2)); // zwróć wartość ''false''

4301351 12
4301351 12

Krok 5. Porównaj cal1 i cal2 metodą równości

Poniższy kod pokaże przykładowy przypadek, który zwraca true i false. Stan zależy od porównywanej instancji Kalendarza. Poniższy kod zwróci wartość „true”, a następnie „false” w następnym wierszu.

    System.out.println(cal1.equals(cal3)); // zwróć wartość ''prawda'': cal1 == cal3 System.out.print(cal1.equals(cal2)); // zwróć wartość ''false'': cal1 != cal2

Metoda 4 z 4: Korzystanie z getTime

4301351 13
4301351 13

Krok 1. Użyj getTime

Możesz również bezpośrednio porównać wartości jednostek czasu dwóch dat, chociaż poprzednie dwie metody mogą być łatwiejsze do odczytania i preferowane. W ten sposób będziesz porównywał 2 podstawowe typy danych, więc możesz użyć operandów „” i „==”.

4301351 14
4301351 14

Krok 2. Utwórz obiekt czasu w formacie długich liczb

Zanim będzie można porównać daty, należy utworzyć wartość Long Integer z poprzednio utworzonego obiektu Date. Na szczęście metoda getTime() zrobi to za Ciebie.

    długi czas1 = getTime(data1); //deklaruj prymitywny czas1 z daty1 długi czas2 = getTime(data2); //deklaruj pierwotną wartość time2 z date2

4301351 15
4301351 15

Krok 3. Wykonaj mniej niż porównanie

Użyj argumentu less niż (<), aby porównać te dwie wartości całkowite. Ponieważ time1 jest krótszy niż time2, pojawi się pierwszy komunikat. Instrukcja else jest dołączona, aby uzupełnić składnię.

    if(time1 < time2){ System.out.println("data1 jest datą przed datą2"); //pokaże, ponieważ czas1 < czas2 } else{ System.out.println("data1 nie jest datą przed datą2"); }

4301351 16
4301351 16

Krok 4. Wykonaj większe niż porównanie

Użyj argumentu większego niż (>), aby porównać te dwie wartości całkowite. Ponieważ time1 jest większy niż time2, pojawi się pierwszy komunikat. Instrukcja else jest dołączona, aby uzupełnić składnię.

    if(time2 > time1){ System.out.println("data2 to data po dacie1"); //pokaże, ponieważ czas2 > czas1 } else{ System.out.println("data2 nie jest datą po dacie1"); }

4301351 17
4301351 17

Krok 5. Wykonaj porównanie równości

Użyj funkcji operandu, aby sprawdzić równość wartości (==), aby porównać te dwie liczby całkowite. Ponieważ czas1 jest równy czasowi3, pojawi się pierwszy komunikat. Jeśli przepływ programu przechodzi do instrukcji else, oznacza to, że dwa razy nie mają tej samej wartości.

    if(time1 == time2){ System.out.println("obie daty są takie same"); } else{ System.out.println("Pierwszy to nie to samo co drugi"); //pokaże się ponieważ time1 != time2 }

Zalecana: