4 начина да сравните две дати в Java

Съдържание:

4 начина да сравните две дати в Java
4 начина да сравните две дати в Java

Видео: 4 начина да сравните две дати в Java

Видео: 4 начина да сравните две дати в Java
Видео: Язык программирования Java - зачем его учить и что на нем пишут 2024, Може
Anonim

Има много начини за сравняване на две дати в езика за програмиране на Java. В компютрите датата е представена с число (тип данни Long) в единици време - тоест броя на милисекундите, които са изтекли от 1 януари 1970 г. В Java Date е обект, което означава, че има няколко метода за сравнение. Всеки метод, използван за сравняване на две дати, по същество е сравняване на времевите единици на двете дати.

Стъпка

Метод 1 от 4: Използване на compareTo

4301351 1
4301351 1

Стъпка 1. Използвайте compareTo

Обектът Date реализира Comparable, така че 2 дати могат да се сравняват помежду си директно с метода compareTo. Ако и двете дати имат еднакъв брой във времеви единици, тогава методът връща нула. Ако втората дата е по -малка от първата, се връща стойност по -малка от нула. Ако втората дата е по -голяма от първата, методът връща стойност, по -голяма от нула. Ако и двете дати са еднакви, тогава методът ще върне нулева стойност.

4301351 2
4301351 2

Стъпка 2. Създайте множество обекти Date

Трябва да създадете няколко обекта Date, преди да ги сравните. Един от най -лесните начини да направите това е да използвате класа SimpleDateFormat. Този клас улеснява преобразуването на входна стойност на дата в обект Date.

    SimpleDateFormat sdf = нов SimpleDateFormat ("yyyy-MM-dd"). За да декларирате стойност в нова '' Object Date '', използвайте същия формат за дата, когато създавате датата. Date date1 = sdf.parse ("1995-02-23"); // дата1 е 23 февруари 1995 г. Дата дата2 = sdf.parse ("2001-10-31"); // date2 е 31 октомври 2001 Date date3 = sdf.parse ("1995-02-23"); // дата3 е 23 февруари 1995 г.

4301351 3
4301351 3

Стъпка 3. Сравнете обектите Date

Следният код ще ви покаже примери за всеки случай - по -малко, равно и по -голямо от.

    date1.compareTo (date2); // date1 <date2, връща стойност по -малка от 0 date2.compareTo (date1); // date2> date1, връща стойност, по -голяма от 0 date1.compareTo (date3); // date1 = date3, така че ще изведе 0 на конзолата

Метод 2 от 4: Използване на равно, след и преди

4301351 4
4301351 4

Стъпка 1. Използвайте равни, след и преди

Датите могат да се сравняват, като се използват методите за равно, след и преди. Ако две дати имат една и съща стойност във времето, методът equals връща true. Следващият пример ще използва обекта Date, създаден в примерния метод compareTo.

4301351 5
4301351 5

Стъпка 2. Сравнете с предишния метод

Следният код показва примерен случай, който връща true и false. Ако date1 е дата преди date2, методът before връща true. В противен случай методът преди връща false.

    System.out.print (date1.before (date2)); // показва стойността '' true '' System.out.print (date2.before (date2)); // връща стойността '' false ''

4301351 6
4301351 6

Стъпка 3. Сравнете, като използвате метода after

Следният код показва примерен случай, който връща true и false. Ако date2 е датата след date1, методът after връща true. В противен случай методът after ще се върне false.

    System.out.print (date2.after (date1)); // показва стойността „true“System.out.print (date1.after (date2)); // показва стойността „false“

4301351 7
4301351 7

Стъпка 4. Сравнете с метод equals

Следният код показва примерен случай, който връща true и false. Ако и двете дати са равни, методът equals връща true. В противен случай методът equals връща false.

    System.out.print (date1.equals (date3)); // показва стойността "" true "" System.out.print (date1.equals (date2)); // показва стойността "" false ""

Метод 3 от 4: Използване на календара на класа

4301351 8
4301351 8

Стъпка 1. Използвайте календара на класа

Класът Calendar също има compareTo, equals, after и before методи, които работят същите като описаните по -рано за Date клас. Така че, ако информацията за датата се съхранява в календар на класа, не е нужно да извличате датата само за да направите сравнение.

4301351 9
4301351 9

Стъпка 2. Създайте екземпляр на Календар

За да използвате методи в Календар на класа, трябва да създадете няколко екземпляра на Календар. За щастие можете да използвате стойностите от предварително създаден екземпляр на Date.

    Календар cal1 = Calendar.getInstance (); // обявява cal1 Календар cal2 = Calendar.getInstance (); // обявява cal2 Календар cal3 = Calendar.getInstance (); // обявява cal3 cal1.setTime (date1); // поставяме датата в cal1 cal2.setTime (date2); cal3.setTime (date3);

4301351 10
4301351 10

Стъпка 3. Сравнете cal1 и cal2, като използвате предишния метод

Следният код ще изведе стойността на tr

    System.out.print (cal1.before (cal2)); // ще върне стойност '' true ''

4301351 11
4301351 11

Стъпка 4. Сравнете cal1 и cal2, като използвате метода after

Следният код ще върне false, защото cal1 е датата преди cal2.

    System.out.print (cal1.after (cal2)); // връща стойността '' false ''

4301351 12
4301351 12

Стъпка 5. Сравнете cal1 и cal2, като използвате метода на equals

Следният код ще покаже примерен случай, който връща true и false. Състоянието зависи от сравнения инстанция на Календар. Следният код ще върне стойността „true“, след това „false“на следващия ред.

    System.out.println (cal1.equals (cal3)); // връща стойността '' true '': cal1 == cal3 System.out.print (cal1.equals (cal2)); // връща стойността '' false '': cal1! = cal2

Метод 4 от 4: Използване на getTime

4301351 13
4301351 13

Стъпка 1. Използвайте getTime

Можете също така директно да сравните стойностите на времевите единици на две дати, въпреки че предишните два метода може да са по -лесни за четене и за предпочитане. По този начин ще сравнявате 2 примитивни типа данни, така че можете да използвате операндите "" и "==".

4301351 14
4301351 14

Стъпка 2. Създайте обект за време във формат с дълги числа

Преди да можете да сравнявате дати, трябва да създадете Long Integer стойност от предварително създадения обект Date. За щастие методът getTime () ще го направи вместо вас.

    дълго време1 = getTime (дата1); // декларираме примитивно време1 на дата1 дълго време2 = getTime (дата2); // обявява примитивна time2 стойност на date2

4301351 15
4301351 15

Стъпка 3. Извършете сравнение по -малко

Използвайте операнда по -малък от (<), за да сравните тези две цели числа. Тъй като time1 е по -малко от time2, ще се появи първото съобщение. Изразът else е включен, за да завърши синтаксиса.

    if (time1 <time2) {System.out.println ("date1 е датата преди date2"); // ще се покаже, защото time1 <time2} else {System.out.println ("date1 не е дата преди date2"); }

4301351 16
4301351 16

Стъпка 4. Извършете повече от сравнение

Използвайте операнда по -голям от (>), за да сравните тези две цели числа. Тъй като time1 е по -голямо от time2, ще се появи първото съобщение. Изразът else е включен, за да завърши синтаксиса.

    if (time2> time1) {System.out.println ("date2 е датата след date1"); // ще се покаже, защото time2> time1} else {System.out.println ("date2 не е датата след date1"); }

4301351 17
4301351 17

Стъпка 5. Направете сравнение равно

Използвайте функцията операнд, за да проверите равенството на стойностите (==), за да сравните тези две цели числа. Тъй като time1 е равно на time3, ще се появи първото съобщение. Ако потокът на програмата отива в оператора else, това означава, че двата пъти нямат една и съща стойност.

    if (time1 == time2) {System.out.println ("и двете дати са еднакви"); } else {System.out.println ("Първото не е същото като второто"); // ще се покаже, защото time1! = time2}

Препоръчано: