4 Möglichkeiten, zwei Daten in Java zu vergleichen

Inhaltsverzeichnis:

4 Möglichkeiten, zwei Daten in Java zu vergleichen
4 Möglichkeiten, zwei Daten in Java zu vergleichen

Video: 4 Möglichkeiten, zwei Daten in Java zu vergleichen

Video: 4 Möglichkeiten, zwei Daten in Java zu vergleichen
Video: Java Tutorial für Anfänger (Deutsch) 2024, Kann
Anonim

Es gibt viele Möglichkeiten, zwei Daten in der Programmiersprache Java zu vergleichen. In Computern wird ein Datum durch eine Zahl (den Datentyp Long) in Zeiteinheiten dargestellt – d. h. die Anzahl der Millisekunden, die seit dem 1. Januar 1970 verstrichen sind mehrere Methoden zum Vergleichen. Jede Methode, die zum Vergleichen zweier Daten verwendet wird, vergleicht im Wesentlichen die Zeiteinheiten der beiden Daten.

Schritt

Methode 1 von 4: Verwenden von CompareTo

4301351 1
4301351 1

Schritt 1. Verwenden Sie CompareTo

Das Date-Objekt implementiert Comparable, sodass 2 Datumsangaben direkt mit der Methode CompareTo miteinander verglichen werden können. Wenn beide Datumsangaben dieselbe Zahl in Zeiteinheiten aufweisen, gibt die Methode null zurück. Wenn das zweite Datum kleiner als das erste ist, wird ein Wert kleiner als Null zurückgegeben. Wenn das zweite Datum größer als das erste ist, gibt die Methode einen Wert größer als Null zurück. Wenn beide Daten gleich sind, gibt die Methode einen Nullwert zurück.

4301351 2
4301351 2

Schritt 2. Erstellen Sie mehrere Date-Objekte

Sie müssen mehrere Date-Objekte erstellen, bevor Sie sie vergleichen. Eine der einfachsten Möglichkeiten, dies zu tun, besteht darin, die SimpleDateFormat-Klasse zu verwenden. Diese Klasse macht es einfach, einen eingegebenen Datumswert in ein Date-Objekt zu konvertieren.

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"). Um einen Wert in einem neuen ''Objektdatum'' zu deklarieren, verwenden Sie beim Erstellen des Datums dasselbe Datumsformat. Datum date1 = sdf.parse("1995-02-23"); //Datum1 ist der 23. Februar 1995 Datum Datum2 = sdf.parse("2001-10-31"); //date2 ist der 31. Oktober 2001 Date date3 = sdf.parse("1995-02-23"); //Datum3 ist der 23. Februar 1995

4301351 3
4301351 3

Schritt 3. Vergleichen Sie die Date-Objekte

Der folgende Code zeigt Ihnen Beispiele für jeden Fall – kleiner als, gleich und größer als.

    date1.compareTo(date2); //date1 < date2, gibt einen Wert kleiner als 0 zurück date2.compareTo(date1); //date2 > date1, gibt einen Wert größer als 0 zurück date1.compareTo(date3); //date1 = date3, also wird 0 auf der Konsole ausgegeben

Methode 2 von 4: Verwenden von Equals, After und Before

4301351 4
4301351 4

Schritt 1. Verwenden Sie equals, after und before

Datumsangaben können mit den Methoden equals, after und before verglichen werden. Wenn zwei Datumsangaben den gleichen Zeitwert haben, gibt die equals-Methode true zurück. Im folgenden Beispiel wird das Date-Objekt verwendet, das in der CompareTo-Beispielmethode erstellt wurde.

4301351 5
4301351 5

Schritt 2. Vergleichen Sie mit der Vorher-Methode

Der folgende Code zeigt einen Beispielfall, der true und false zurückgibt. Wenn date1 ein Datum vor date2 ist, gibt die before-Methode true zurück. Andernfalls gibt die Methode vor false zurück.

    System.out.print (date1.before(date2)); // den Wert ''true'' anzeigen System.out.print(date2.before(date2)); // den Wert ''false'' zurückgeben

4301351 6
4301351 6

Schritt 3. Vergleichen Sie mit der Nach-Methode

Der folgende Code zeigt einen Beispielfall, der true und false zurückgibt. Wenn date2 das Datum nach date1 ist, gibt die after-Methode true zurück. Andernfalls gibt die Methode after false zurück.

    System.out.print(date2.after(date1)); // Anzeige des Wertes ''true'' System.out.print(date1.after(date2)); // Anzeige des Werts ''false''

4301351 7
4301351 7

Schritt 4. Vergleichen Sie mit der Equals-Methode

Der folgende Code zeigt einen Beispielfall, der true und false zurückgibt. Wenn beide Daten gleich sind, gibt die Methode equals true zurück. Andernfalls gibt die Methode equals false zurück.

    System.out.print(date1.equals(date3)); // Anzeige des Wertes ''true'' System.out.print(date1.equals(date2)); // Anzeige des Werts ''false''

Methode 3 von 4: Verwenden des Klassenkalenders

4301351 8
4301351 8

Schritt 1. Verwenden Sie den Klassenkalender

Die Calendar-Klasse verfügt außerdem über die Methoden CompareTo, equals, after und before, die genauso funktionieren wie die zuvor für die Date-Klasse beschriebenen. Wenn die Datumsinformationen also in einem Klassenkalender gespeichert sind, müssen Sie das Datum nicht extrahieren, nur um einen Vergleich durchzuführen.

4301351 9
4301351 9

Schritt 2. Erstellen Sie eine Instanz von Calendar

Um Methoden im Klassenkalender zu verwenden, müssen Sie mehrere Kalenderinstanzen erstellen. Glücklicherweise können Sie die Werte einer zuvor erstellten Date-Instanz verwenden.

    Kalender cal1 = Calendar.getInstance(); // cal1 deklarieren Kalender cal2 = Calendar.getInstance(); // cal2 deklarieren Kalender cal3 = Calendar.getInstance(); // cal3 deklarieren cal1.setTime (date1); // Setzen Sie das Datum in cal1 cal2.setTime (date2); cal3.setTime(Datum3);

4301351 10
4301351 10

Schritt 3. Vergleichen Sie cal1 und cal2 mit der Vorher-Methode

Der folgende Code gibt den Wert von tr. aus

    System.out.print (cal1.before(cal2)); // gibt den Wert ''true'' zurück

4301351 11
4301351 11

Schritt 4. Vergleichen Sie cal1 und cal2 mit der after-Methode

Der folgende Code gibt false zurück, da cal1 das Datum vor cal2 ist.

    System.out.print (cal1.after (cal2)); // den Wert ''false'' zurückgeben

4301351 12
4301351 12

Schritt 5. Vergleichen Sie cal1 und cal2 mit der equals-Methode

Der folgende Code zeigt einen Beispielfall, der true und false zurückgibt. Der Status hängt von der Kalenderinstanz ab, die verglichen wird. Der folgende Code gibt den Wert "true" zurück, dann "false" in der nächsten Zeile.

    System.out.println(cal1.equals(cal3)); // den Wert ''true'' zurückgeben: cal1 == cal3 System.out.print(cal1.equals(cal2)); // den Wert ''false'' zurückgeben: cal1 != cal2

Methode 4 von 4: Verwenden von getTime

4301351 13
4301351 13

Schritt 1. Verwenden Sie getTime

Sie können auch die Zeiteinheitswerte von zwei Datumsangaben direkt vergleichen, obwohl die vorherigen beiden Methoden möglicherweise einfacher zu lesen und zu bevorzugen sind. Auf diese Weise vergleichen Sie 2 primitive Datentypen, sodass Sie die Operanden "", und "==" verwenden können.

4301351 14
4301351 14

Schritt 2. Erstellen Sie ein Zeitobjekt im Long-Zahlenformat

Bevor Sie Datumsangaben vergleichen können, müssen Sie einen Long-Integer-Wert aus dem zuvor erstellten Date-Objekt erstellen. Glücklicherweise erledigt dies die Methode getTime() für Sie.

    lange Zeit1 = getTime(date1); // primitive time1 von date1 deklarieren long time2 = getTime (date2); // primitiven time2-Wert von date2 deklarieren

4301351 15
4301351 15

Schritt 3. Führen Sie einen Kleiner-als-Vergleich durch

Verwenden Sie den Operanden kleiner als (<), um diese beiden ganzzahligen Werte zu vergleichen. Da time1 kleiner als time2 ist, wird die erste Meldung angezeigt. Die else-Anweisung wird eingefügt, um die Syntax zu vervollständigen.

    if(time1 < time2){ System.out.println("Datum1 ist das Datum vor Datum2"); // wird angezeigt, weil time1 < time2 } else{ System.out.println("date1 ist kein Datum vor date2"); }

4301351 16
4301351 16

Schritt 4. Führen Sie einen Größer-als-Vergleich durch

Verwenden Sie den Operanden Größer als (>), um diese beiden ganzzahligen Werte zu vergleichen. Da time1 größer als time2 ist, wird die erste Meldung angezeigt. Die else-Anweisung wird eingefügt, um die Syntax zu vervollständigen.

    if(time2 > time1){ System.out.println("date2 ist das Datum nach date1"); // wird angezeigt, weil time2> time1} else{ System.out.println("date2 ist nicht das Datum nach date1"); }

4301351 17
4301351 17

Schritt 5. Führen Sie einen Gleichheitsvergleich durch

Verwenden Sie die Operandenfunktion, um die Gleichheit der Werte (==) zu überprüfen, um diese beiden Ganzzahlen zu vergleichen. Da time1 gleich time3 ist, erscheint die erste Meldung. Wenn der Programmablauf in die else-Anweisung eingeht, bedeutet dies, dass die beiden Zeiten nicht denselben Wert haben.

    if(time1 == time2){ System.out.println("beide Daten sind gleich"); } else{ System.out.println("Der 1. ist nicht gleich dem 2."); // wird angezeigt, weil time1 != time2 }

Empfohlen: