Confronta le date in java

Esistono diversi modi per confrontare le date in Java. Internamente, una data è rappresentata come un punto (lungo) nel tempo, il numero di millisecondi trascorsi dal 1 gennaio 1970. In Java, date è l`oggetto Date, il che significa che contiene più metodi (metodi) per confrontare le date. Qualsiasi metodo per confrontare due date confronterà sostanzialmente il tempo trascorso di entrambe le date.

Passi

Metodo 1 di 4: utilizzo del comando `compareTo`

Immagine titolata 4301351 1
1. Usa compareTo. Data implementa Comparable
Immagine titolata 4301351 2
2. Crea gli oggetti Data. Dovrai creare ogni oggetto data prima di poterli confrontare. Un modo per farlo è applicare la classe SimpleDateFormat. Consente di inserire facilmente le date negli oggetti Date.
SimpleDateFormat sdf = new SimpleDateFormat(`aaaa-MM-gg`); //Per la dichiarazione di valori in nuovi oggetti data. Utilizzare lo stesso formato della data durante la creazione di date Datedatum1 = sdf.analizzare(`1995-02-23`); //date1 è il 23 febbraio 1995 Date date2 = sdf.analizzare(`2001-10-31`); //date2 è il 31 ottobre 2001 Date date3 = sdf.analizzare(`1995-02-23`); //data3 è il 23 febbraio 1995
Immagine titolata 4301351 3
3. Confronta gli oggetti data. Quanto segue mostra ogni caso: minore di, uguale a e maggiore di.
data1.confrontaA(data2); //data1 < data2, minore di 0 data2.confrontaA(data1); //data2 > data1, restituisce maggiore di 0 data1.confrontaA(data3); //data1 = data3, restituisce 0

Metodo 2 di 4: Utilizzo dei metodi "uguale, dopo e prima"

Immagine titolata 4301351 4
1. Usa uguale, dopo e prima. Le date possono essere confrontate usando i metodi uguali, dopo e prima. Se due date indicano la stessa ora, il metodo equals restituirà `true`. Gli esempi utilizzano le date create in precedenza tramite il metodo compareTo.
Immagine titolata 4301351 5
2. Confronta usando il metodo prima. Il codice seguente mostra un caso di vero e falso. Se data1 è precedente a data2, il risultato è vero. In caso contrario, before restituisce false.
Sistema.fuori.stampa(data1.prima (data2)); //stampa vero Sistema.fuori.print(data2.prima (data2)); //stampa falsa
Immagine titolata 4301351 6
3. Confronta questo con il metodo dopo. Il codice seguente mostra un caso di vero e falso. Se data2 è successiva a data1, dopo restituisce true. In caso contrario, after restituisce false.
Sistema.fuori.print(data2.after(date1));//print true System.fuori.stampa(data1.dopo(data2));//print false
Immagine titolata 4301351 7
4. Confronta usando il metodo uguale. Il codice seguente mostra un caso di vero e falso. Se le date sono uguali, uguale restituisce true. In caso contrario, uguale restituisce falso.
Sistema.fuori.stampa(data1.equals(date3));//print true System.fuori.stampa(data1.equals(date2));//print false

Metodo 3 di 4: utilizzo della classe Calendar

Immagine titolata 4301351 8
1. Usa la classe Calendario. La classe Calendar include anche i metodi compareTo, equals, after e before, che funzionano allo stesso modo descritto sopra per la classe date. Quindi, se i dati relativi alla data sono conservati in un calendario, non è necessario estrarre "data" solo per confrontare due date.
Immagine titolata 4301351 9
2. Crea istanza di Calendar. Per utilizzare i metodi Calendar, sono necessarie alcune istanze di Calendar. Fortunatamente puoi utilizzare l`ora generata dalle istanze Date.
Calendario chiamata1 = Calendario.getInstance(); //dichiara cal1 Calendario cal2 = Calendario.getInstance(); //dichiara cal2 Calendario cal3 = Calendario.getInstance(); //dichiara cal3 cal1.setTime(data1); //applica la data a cal1 cal2.setTime(data2); cal3.setTime(data3);
Immagine titolata 4301351 10
3. Confronta cal1 e cal2 usando prima. Il codice seguente restituisce true perché cal1 è prima di cal2.
Sistema.fuori.print(cal1.prima (cal2)); //stampa vero
Immagine titolata 4301351 11
4. Confronta cal1 e cal2 usando after. Il codice seguente restituisce false, perché cal1 è prima di cal2.
Sistema.fuori.print(cal1.dopo(cal2)); //stampa falsa
Immagine titolata 4301351 12
5. Confronta cal1 e cal2 usando equals. Il codice seguente mostra un esempio di true e false. La condizione dipende dalle istanze di Calendar confrontate. Il codice seguente fornisce "true" e quindi "false" nella riga successiva.
Sistema.fuori.println(cal1.uguale a(cal3)); //print true: cal1 == cal3 Sistema.fuori.print(cal1.uguale (cal2)); //print false: call1 != cal2

Metodo 4 di 4: utilizzo del metodo `getTime`

Immagine titolata 4301351 13
1. Usa getTime. È anche possibile confrontare direttamente due punti temporali, sebbene sia probabile che uno qualsiasi degli approcci precedenti produca risultati più leggibili e quindi sia preferito. Questo è un confronto di due tipi di dati primitivi, quindi può essere fatto con `<`, `>` e `==`.
Immagine titolata 4301351 14
2. Crea gli oggetti a tempo "lungo". Prima di poter confrontare le date, è necessario creare interi lunghi dai dati degli oggetti Date creati in precedenza. Fortunatamente, il metodo getTime() farà la maggior parte del lavoro per te.
tempo lungo1 = getTime(data1); //dichiara la primitiva time1 da date1 long time2 = getTime(date2); //dichiara la primitiva time2 da date2
Immagine titolata 4301351 15
3. Usa un`equazione "minore di". Usa un simbolo "minore di" (<) per confrontare questi due valori interi. Poiché il tempo1 è inferiore al tempo2, il primo messaggio dovrebbe essere stampato sullo schermo. L`istruzione else è inclusa per la sintassi corretta.
se(tempo1 < tempo2){ Sistema.fuori.println(`date1 è precedente a date2`); //stampa perché time1 < time2 } else{ Sistema.fuori.println(`date1 è successiva o uguale a date2`); }
Immagine titolata 4301351 16
4. Fai un confronto "maggiore di". Usa il simbolo maggiore di (>) per confrontare questi due numeri interi. Poiché time1 è maggiore di time2, il primo messaggio viene stampato sullo schermo. L`istruzione else è inclusa per la sintassi corretta.
se(tempo2 > tempo1){ Sistema.fuori.println(`la data2 viene dopo la data1`); // stampa perché time2 > time1} else{ Sistema.fuori.println(`date2 è precedente o uguale a date1`); }
Immagine titolata 4301351 17
5. Fai un confronto "uguale a". Usa il simbolo (==) per confrontare questi due numeri interi. Poiché tempo1 è uguale a tempo3, il primo messaggio dovrebbe essere stampato. Se il programma arriva all`istruzione else, significa che i tempi non sono uguali.
if(tempo1 == tempo2){ Sistema.fuori.println(`Le date corrispondono`); } altro{ Sistema.fuori.println(`Le date non sono le stesse`); //stampa perché time1 != tempo2 }

Condividi sui social network: