Porównaj daty w Javie

Autor: Roger Morrison
Data Utworzenia: 24 Wrzesień 2021
Data Aktualizacji: 1 Lipiec 2024
Anonim
Porównaj daty w Javie - Porady
Porównaj daty w Javie - Porady

Zawartość

Istnieje kilka sposobów porównywania dat w Javie. Wewnętrznie data jest reprezentowana jako (długi) punkt w czasie - liczba milisekund, które minęły od 1 stycznia 1970 r. W Javie data jest obiektem Date, co oznacza, że ​​zawiera wiele metod porównywania dat. Każda metoda porównywania dwóch dat w zasadzie porówna czas, który upłynął dla obu dat.

Do kroku

Metoda 1 z 4: użycie polecenia „compareTo”

  1. Użyj compareTo. Date implementuje ComparableDate>, dzięki czemu dwie daty można bezpośrednio porównać ze sobą za pomocą metody compareTo. Jeśli daty wskazują ten sam moment w czasie, metoda zwróci zero. Jeśli porównywana data jest przed argumentem data, zostanie zwrócona wartość ujemna. Jeśli porównywana data jest datą późniejszą niż data argumentu data, zostanie zwrócona wartość dodatnia. Jeśli daty są takie same, zostanie zwrócone zero.
  2. Utwórz obiekty Date. Będziesz musiał utworzyć każdy obiekt daty, zanim zaczniesz je porównywać. Jednym ze sposobów jest zastosowanie klasy SimpleDateFormat. Pozwala to na łatwe wprowadzanie dat do obiektów Date.

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

  3. Porównaj obiekty daty. Poniżej przedstawiono każdy przypadek - mniejszy niż, równy i większy niż.

      date1.compareTo (date2); // data1 data2, mniej niż 0 data2.compareTo (data1); // data2> data1, zwraca wartość większą niż 0 date1.compareTo (data3); // data1 = data3, zwraca 0

Metoda 2 z 4: Korzystanie z metod „równa się, po i przed”

  1. Użyj równych, po i przed. Daty można porównywać ze sobą za pomocą metod równa się, po i przed. Jeśli dwie daty wskazują ten sam czas, metoda equals zwróci wartość „true”. W przykładach są używane wcześniej utworzone daty za pomocą metody compareTo.
  2. Porównaj, używając poprzedniej metody. Poniższy kod przedstawia przypadek prawda i fałsz. Jeśli data1 jest wcześniejsza niż data2, wynik jest prawdziwy. Jeśli nie, przed zwraca fałsz.

      System.out.print (date1.before (data2)); // wypisz true System.out.print (data2.before (data2)); // wypisz fałsz

  3. Porównaj to z metodą następującą. Poniższy kod przedstawia przypadek prawda i fałsz. Jeśli data2 jest późniejsza niż data1, to after zwraca prawdę. Jeśli nie, after zwraca false.

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

  4. Porównaj, używając metody równości. Poniższy kod przedstawia przypadek prawda i fałsz. Jeśli daty są takie same, funkcja equals zwraca wartość true. Jeśli nie, equals zwraca false.

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

Metoda 3 z 4: Korzystanie z klasy Calendar

  1. Użyj klasy Calendar. 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 dane daty są przechowywane w kalendarzu, nie ma potrzeby wyodrębniania „daty”, wystarczy porównać dwie daty.
  2. Utwórz instancję Kalendarza. Aby korzystać z metod kalendarza, potrzebujesz kilku instancji kalendarza. Na szczęście możesz użyć czasu wygenerowanego przez instancje Date.

      Calendar cal1 = Calendar.getInstance (); // deklaruje cal1 Calendar cal2 = Calendar.getInstance (); // deklaruje cal2 Calendar cal3 = Calendar.getInstance (); // deklaruje cal3 cal1.setTime (date1); // stosuje datę do cal1 cal2.setTime (date2); cal3.setTime (date3);

  3. Porównaj cal1 i cal2 używając wcześniej. Poniższy kod zwraca wartość true, ponieważ cal1 jest wcześniejsza niż cal2.

      System.out.print (cal1.before (cal2)); // wypisz prawdę

  4. Porównaj cal1 i cal2 używając after. Poniższy kod zwraca wartość false, ponieważ cal1 jest wcześniejsza niż cal2.

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

  5. Porównaj cal1 i cal2 używając równości. Poniższy kod przedstawia przykład zarówno wartości true, jak i false. Warunek zależy od porównywanych instancji Kalendarza. Poniższy kod zwraca „prawda”, a następnie „fałsz” w następnym wierszu.

      System.out.println (cal1.equals (cal3)); // print true: cal1 == cal3 System.out.print (cal1.equals (cal2)); // wypisz fałsz: cal1! = cal2

Metoda 4 z 4: użycie metody „getTime”

  1. Użyj getTime. Możliwe jest również bezpośrednie porównanie dwóch punktów czasowych, chociaż dowolne z powyższych podejść może dać bardziej czytelne wyniki i dlatego jest preferowane. To jest porównanie dwóch pierwotnych typów danych, więc można to zrobić za pomocą „”, „>” i „==”.
  2. Utwórz obiekty „długiego” czasu. Zanim będzie można porównać daty, należy utworzyć długie liczby całkowite z danych utworzonych wcześniej obiektów Date. Na szczęście większość pracy wykona za Ciebie metoda getTime ().

      long time1 = getTime (date1); // deklaruje prymityw time1 z date1 long time2 = getTime (date2); // deklaruje prymityw time2 z date2

  3. Użyj równania „mniejsze niż”. Użyj symbolu „mniejsze niż” (), aby porównać te dwie wartości całkowite. Ponieważ time1 jest mniejszy niż time2, pierwsza wiadomość powinna zostać wydrukowana na ekranie. Instrukcja else jest dołączona dla poprawnej składni.

      if (czas1 czas2) {System.out.println ("data1 jest wcześniejsza niż data2"); // drukuj, ponieważ czas1 czas2} else {System.out.println ("data1 jest późniejsza lub równa date2"); }

  4. Wykonaj porównanie „większe niż”. Użyj symbolu „większe niż” (>), aby porównać te dwie liczby całkowite. Ponieważ time1 jest większy niż time2, na ekranie drukowany jest pierwszy komunikat. Instrukcja else została dołączona dla poprawnej składni.

      if (czas2> czas1) {System.out.println ("data2 następuje po dacie1"); // drukuj, ponieważ czas2> czas1} else {System.out.println ("data2 jest wcześniejsza lub równa date1"); }

  5. Wykonaj porównanie „równe”. Użyj symbolu (==), aby porównać te dwie liczby całkowite. Ponieważ time1 równa się time3, powinien zostać wydrukowany pierwszy komunikat. Jeśli program dotrze do instrukcji else, oznacza to, że czasy nie są takie same.

      if (czas1 == czas2) {System.out.println ("Daty są równe"); } else {System.out.println ("Daty nie są równe"); // drukuj, ponieważ czas1! = czas2}