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
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.
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
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
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.
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''
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”
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
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.
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);
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”
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''
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
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 „==”.
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
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"); }
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"); }
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 }