4 maneres de comparar dues dates a Java

Taula de continguts:

4 maneres de comparar dues dates a Java
4 maneres de comparar dues dates a Java

Vídeo: 4 maneres de comparar dues dates a Java

Vídeo: 4 maneres de comparar dues dates a Java
Vídeo: Публичное собеседование: Junior Java Developer. Пример, как происходит защита проекта после курсов. 2024, Maig
Anonim

Hi ha moltes maneres de comparar dues dates en el llenguatge de programació Java. Als ordinadors, una data es representa amb un nombre (el tipus de dades llarg) en unitats de temps, és a dir, el nombre de mil·lisegons que han transcorregut des de l’1 de gener de 1970. A Java, la data és un objecte, el que significa que té diversos mètodes per fer comparacions. Qualsevol mètode utilitzat per comparar dues dates és bàsicament comparar les unitats de temps de les dues dates.

Pas

Mètode 1 de 4: utilitzant compareTo

4301351 1
4301351 1

Pas 1. Utilitzeu compareTo

L'objecte Date implementa Comparable, de manera que es poden comparar dues dates directament amb el mètode compareTo. Si ambdues dates tenen el mateix nombre en unitats de temps, el mètode torna zero. Si la segona data és inferior a la primera, es retorna un valor inferior a zero. Si la segona data és superior a la primera, el mètode retorna un valor superior a zero. Si les dues dates són iguals, el mètode retornarà un valor nul.

4301351 2
4301351 2

Pas 2. Creeu diversos objectes de data

Heu de crear diversos objectes Date abans de comparar-los. Una de les maneres més fàcils de fer-ho és utilitzar la classe SimpleDateFormat. Aquesta classe fa que sigui fàcil convertir un valor de data d’entrada en un objecte Date.

    SimpleDateFormat sdf = nou SimpleDateFormat ("aaaa-MM-dd"). Per declarar un valor en una nova "Data de l'objecte", utilitzeu el mateix format de data quan creeu la data. Data data1 = sdf.parse ("23-02 1995"); // data1 és el 23 de febrer de 1995 Data data2 = sdf.parse ("2001-10-31"); // data2 és el 31 d’octubre de 2001 Data date3 = sdf.parse ("23-02 1995"); // data3 és el 23 de febrer de 1995

4301351 3
4301351 3

Pas 3. Compareu els objectes Date

El codi següent us mostrarà exemples per a cada cas: menor que, igual i superior a.

    data1.compareTo (data2); // data1 <data2, retorna un valor inferior a 0 date2.compareTo (date1); // data2> data1, retorna un valor superior a 0 date1.compareTo (date3); // data1 = data3, de manera que sortirà 0 a la consola

Mètode 2 de 4: utilitzar iguals, després i abans

4301351 4
4301351 4

Pas 1. Feu servir iguals, després i abans

Les dates es poden comparar mitjançant mètodes iguals, posteriors i anteriors. Si dues dates tenen el mateix valor en el temps, el mètode igual retorna true. A l'exemple següent s'utilitzarà l'objecte Date creat al mètode compareTo.

4301351 5
4301351 5

Pas 2. Compareu amb el mètode d'abans

El codi següent mostra un exemple de cas que retorna cert i fals. Si la data1 és anterior a la data2, el mètode abans torna a ser cert. En cas contrari, el mètode before torna fals.

    System.out.print (data1.abans (data2)); // mostra el valor "veritable" System.out.print (data2.abans (data2)); // retorna el valor "false"

4301351 6
4301351 6

Pas 3. Compareu amb el mètode after

El codi següent mostra un exemple de cas que retorna cert i fals. Si la data2 és la data posterior a la data1, el mètode after torna a true. En cas contrari, el mètode after tornarà a ser fals.

    System.out.print (date2.after (date1)); // mostra el valor "true" System.out.print (date1.after (date2)); // mostra el valor "false"

4301351 7
4301351 7

Pas 4. Compareu amb el mètode igual

El codi següent mostra un exemple de cas que retorna cert i fals. Si ambdues dates són iguals, el mètode igual retorna cert. En cas contrari, el mètode igual torna fals.

    System.out.print (date1.equals (date3)); // mostra el valor "true" System.out.print (date1.equals (date2)); // mostra el valor "false"

Mètode 3 de 4: utilitzar el calendari de classes

4301351 8
4301351 8

Pas 1. Utilitzeu el calendari de classes

La classe Calendar també té mètodes compareTo, equals, after i before que funcionen igual que els descrits anteriorment per a la classe Date. Per tant, si la informació de la data s’emmagatzema en un calendari de classes, no cal que extreu la data només per fer una comparació.

4301351 9
4301351 9

Pas 2. Creeu una instància de Calendar

Per utilitzar mètodes a Class Calendar, heu de crear diverses instàncies de Calendar. Afortunadament, podeu utilitzar els valors d’una instància de Data creada prèviament.

    Calendari cal1 = Calendar.getInstance (); // declare cal1 Calendar cal2 = Calendar.getInstance (); // declare cal2 Calendar cal3 = Calendar.getInstance (); // declarar cal3 cal1.setTime (data1); // posa la data a cal1 cal2.setTime (data2); cal3.setTime (data3);

4301351 10
4301351 10

Pas 3. Compareu cal1 i cal2 mitjançant el mètode d'abans

El següent codi generarà el valor de tr

    System.out.print (cal1.before (cal2)); // retornarà el valor "true"

4301351 11
4301351 11

Pas 4. Compareu cal1 i cal2 mitjançant el mètode after

El següent codi retornarà fals perquè cal1 és la data anterior a cal2.

    System.out.print (cal1.after (cal2)); // torna el valor "false"

4301351 12
4301351 12

Pas 5. Compareu cal1 i cal2 mitjançant el mètode igual

El codi següent mostrarà un exemple de cas que retorna cert i fals. L'estat depèn de la comparació de la instància de Calendar. El següent codi retornarà el valor "true" i, a continuació, "false" a la següent línia.

    System.out.println (cal1.equals (cal3)); // retorna el valor "veritable": cal1 == cal3 System.out.print (cal1.equals (cal2)); // retorna el valor '' false '': cal1! = cal2

Mètode 4 de 4: utilitzar getTime

4301351 13
4301351 13

Pas 1. Utilitzeu getTime

També podeu comparar directament els valors de la unitat de temps de dues dates, tot i que els dos mètodes anteriors poden ser més fàcils de llegir i preferibles. D'aquesta manera comparareu dos tipus de dades primitius, de manera que podeu utilitzar els operands "" i "==".

4301351 14
4301351 14

Pas 2. Creeu un objecte horari en format de número llarg

Abans de poder comparar les dates, heu de crear un valor sencer llarg a partir de l'objecte Data creat anteriorment. Per sort, el mètode getTime () ho farà per vosaltres.

    long time1 = getTime (data1); // declarar l’hora primitiva1 de la data1 molt temps2 = getTime (data2); // declarar valor primitiu de temps2 de data2

4301351 15
4301351 15

Pas 3. Realitzeu una comparació inferior a la comparació

Utilitzeu l'operant menor que (<) per comparar aquests dos valors enters. Com que time1 és inferior a time2, apareixerà el primer missatge. S'inclou la sentència else per completar la sintaxi.

    if (hora1 <hora2) {System.out.println ("data1 és la data anterior a la data2"); // es mostrarà perquè time1 <time2} else {System.out.println ("data1 no és una data anterior a data2"); }

4301351 16
4301351 16

Pas 4. Realitzeu una comparació superior a la comparació

Utilitzeu l'operant major que (>) per comparar aquests dos valors enters. Com que time1 és més gran que time2, apareixerà el primer missatge. S'inclou la sentència else per completar la sintaxi.

    if (hora2> hora1) {System.out.println ("data2 és la data posterior a data1"); // es mostrarà perquè time2> time1} else {System.out.println ("data2 no és la data posterior a data1"); }

4301351 17
4301351 17

Pas 5. Realitzeu una comparació igual

Utilitzeu la funció d'operant per comprovar la igualtat de valors (==) per comparar aquests dos enters. Com que time1 és igual a time3, apareixerà el primer missatge. Si el flux del programa entra a la sentència else, vol dir que les dues vegades no tenen el mateix valor.

    if (time1 == time2) {System.out.println ("les dues dates són iguals"); } else {System.out.println ("El primer no és el mateix que el segon"); // es mostrarà perquè time1! = time2}

Recomanat: