4 modi per confrontare due date in Java

Sommario:

4 modi per confrontare due date in Java
4 modi per confrontare due date in Java

Video: 4 modi per confrontare due date in Java

Video: 4 modi per confrontare due date in Java
Video: Iniziare a programmare in java da 0 in 11 MINUTI 2024, Novembre
Anonim

Esistono molti modi per confrontare due date nel linguaggio di programmazione Java. Nei computer, una data è rappresentata da un numero (il tipo di dati Long) in unità di tempo, ovvero il numero di millisecondi trascorsi dal 1 gennaio 1970. In Java, Date è un oggetto, il che significa che ha diversi metodi per fare confronti. Qualsiasi metodo utilizzato per confrontare due date è essenzialmente confrontare le unità di tempo delle due date.

Fare un passo

Metodo 1 di 4: Utilizzo di compareTo

4301351 1
4301351 1

Passaggio 1. Utilizzare compareTo

L'oggetto Date implementa Comparable in modo che 2 date possano essere confrontate tra loro direttamente con il metodo compareTo. Se entrambe le date hanno lo stesso numero in unità di tempo, il metodo restituisce zero. Se la seconda data è inferiore alla prima, viene restituito un valore inferiore a zero. Se la seconda data è maggiore della prima, il metodo restituisce un valore maggiore di zero. Se entrambe le date sono uguali, il metodo restituirà un valore null.

4301351 2
4301351 2

Passaggio 2. Crea più oggetti Data

È necessario creare più oggetti Date prima di confrontarli. Uno dei modi più semplici per farlo è usare la classe SimpleDateFormat. Questa classe semplifica la conversione di un valore di data di input in un oggetto Date.

    SimpleDateFormat sdf = new SimpleDateFormat ("aaaa-MM-gg"). Per dichiarare un valore in una nuova ''Data oggetto'', utilizzare lo stesso formato di data durante la creazione della data. Data data1 = sdf.parse("1995-02-23"); //date1 è il 23 febbraio 1995 Date date2 = sdf.parse("2001-10-31"); //date2 è il 31 ottobre 2001 Date date3 = sdf.parse("1995-02-23"); //la data3 è il 23 febbraio 1995

4301351 3
4301351 3

Passaggio 3. Confronta gli oggetti Data

Il codice seguente ti mostrerà esempi per ogni caso: minore di, uguale e maggiore di.

    data1.compareTo(data2); //data1 < data2, restituisce un valore minore di 0 date2.compareTo(data1); //data2 > data1, restituisce un valore maggiore di 0 date1.compareTo(date3); //date1 = date3, quindi produrrà 0 su console

Metodo 2 di 4: Utilizzo di Uguale, Dopo e Prima

4301351 4
4301351 4

Passaggio 1. Utilizzare uguale, dopo e prima

Le date possono essere confrontate utilizzando i metodi equals, after e before. Se due date hanno lo stesso valore temporale, il metodo equals restituisce true. L'esempio seguente utilizzerà l'oggetto Date creato nel metodo compareTo di esempio.

4301351 5
4301351 5

Passaggio 2. Confronta con il metodo precedente

Il codice seguente mostra un caso di esempio che restituisce true e false. Se date1 è una data precedente a date2, il metodo before restituisce true. In caso contrario, il metodo before restituisce false.

    System.out.print(date1.before(date2)); // visualizza il valore ''true'' System.out.print(date2.before(date2)); // restituisce il valore ''false''

4301351 6
4301351 6

Passaggio 3. Confronta utilizzando il metodo dopo

Il codice seguente mostra un caso di esempio che restituisce true e false. Se date2 è la data successiva a date1, il metodo after restituisce true. In caso contrario, il metodo after restituirà false.

    System.out.print(date2.after(date1)); // visualizza il valore ''true'' System.out.print(date1.after(date2)); // visualizza il valore ''false''

4301351 7
4301351 7

Passaggio 4. Confronta con il metodo equals

Il codice seguente mostra un caso di esempio che restituisce true e false. Se entrambe le date sono uguali, il metodo equals restituisce true. In caso contrario, il metodo equals restituisce false.

    System.out.print(date1.equals(date3)); // visualizza il valore ''true'' System.out.print(date1.equals(date2)); // visualizza il valore ''false''

Metodo 3 di 4: utilizzo del calendario delle classi

4301351 8
4301351 8

Passaggio 1. Utilizzare il calendario della classe

La classe Calendar dispone anche di metodi compareTo, equals, after e before che funzionano come quelli descritti in precedenza per la classe Date. Quindi, se le informazioni sulla data sono memorizzate in un Class Calendar, non è necessario estrarre la data solo per fare un confronto.

4301351 9
4301351 9

Passaggio 2. Creare un'istanza di Calendar

Per utilizzare i metodi in Class Calendar, devi creare più istanze di Calendar. Fortunatamente, puoi utilizzare i valori di un'istanza Date creata in precedenza.

    Calendario cal1 = Calendar.getInstance(); //dichiara cal1 Calendar cal2 = Calendar.getInstance(); //dichiara cal2 Calendar cal3 = Calendar.getInstance(); //dichiara cal3 cal1.setTime(date1); //inserisci la data in cal1 cal2.setTime(date2); cal3.setTime(data3);

4301351 10
4301351 10

Passaggio 3. Confronta cal1 e cal2 utilizzando il metodo before

Il codice seguente restituirà il valore di tr

    System.out.print(cal1.before(cal2)); //restituirà il valore ''vero''

4301351 11
4301351 11

Passaggio 4. Confronta cal1 e cal2 utilizzando il metodo after

Il codice seguente restituirà false perché cal1 è la data precedente a cal2.

    System.out.print(cal1.after(cal2)); // restituisce il valore ''false''

4301351 12
4301351 12

Passaggio 5. Confronta cal1 e cal2 utilizzando il metodo equals

Il codice seguente mostrerà un caso di esempio che restituisce true e false. Lo stato dipende dall'istanza di Calendar confrontata. Il codice seguente restituirà il valore "true", quindi "false" nella riga successiva.

    System.out.println(cal1.equals(cal3)); // restituisce il valore ''true'': cal1 == cal3 System.out.print(cal1.equals(cal2)); // restituisce il valore ''false'': cal1 != cal2

Metodo 4 di 4: Utilizzo di getTime

4301351 13
4301351 13

Passaggio 1. Usa getTime

Puoi anche confrontare direttamente i valori dell'unità di tempo di due date, sebbene i due metodi precedenti possano essere più facili da leggere e preferibili. In questo modo confronterai 2 tipi di dati primitivi, in modo da poter utilizzare gli operandi "", e "==".

4301351 14
4301351 14

Passaggio 2. Creare un oggetto tempo in formato numerico lungo

Prima di poter confrontare le date, è necessario creare un valore Intero lungo dall'oggetto Date creato in precedenza. Fortunatamente, il metodo getTime() lo farà per te.

    tempo lungo1 = getTime(data1); //dichiara time1 primitivo di date1 long time2 = getTime(date2); //dichiara il valore primitivo time2 di date2

4301351 15
4301351 15

Passaggio 3. Eseguire un confronto inferiore a

Utilizzare l'operando minore di (<) per confrontare questi due valori interi. Poiché time1 è inferiore a time2, verrà visualizzato il primo messaggio. L'istruzione else è inclusa per completare la sintassi.

    if(time1 < time2){ System.out.println("date1 è la data precedente a date2"); //verrà visualizzato perché ora1 < ora2 } else{ System.out.println("data1 non è una data precedente a data2"); }

4301351 16
4301351 16

Passaggio 4. Eseguire un confronto maggiore di

Utilizzare l'operando maggiore di (>) per confrontare questi due valori interi. Poiché time1 è maggiore di time2, verrà visualizzato il primo messaggio. L'istruzione else è inclusa per completare la sintassi.

    if(time2 > time1){ System.out.println("date2 è la data successiva a date1"); //verrà visualizzato perché ora2 > ora1 } else{ System.out.println("data2 non è la data successiva a data1"); }

4301351 17
4301351 17

Passaggio 5. Eseguire un confronto uguale

Utilizzare la funzione operando per verificare l'uguaglianza dei valori (==) per confrontare questi due interi. Poiché time1 è uguale a time3, apparirà il primo messaggio. Se il flusso del programma va nell'istruzione else, significa che i due tempi non hanno lo stesso valore.

    if(time1 == time2){ System.out.println("entrambe le date sono uguali"); } else{ System.out.println("Il primo non è uguale al secondo"); // mostrerà perché time1 != time2 }

Consigliato: