4 sätt att jämföra två datum i Java

Innehållsförteckning:

4 sätt att jämföra två datum i Java
4 sätt att jämföra två datum i Java

Video: 4 sätt att jämföra två datum i Java

Video: 4 sätt att jämföra två datum i Java
Video: Hello World | First Java Program | Java Tutorial | Basic Java | Core Java @OnlineLearningCenterIndia 2024, November
Anonim

Det finns många sätt att jämföra två datum i programmeringsspråket Java. I datorer representeras ett datum av ett tal (datatypen Long) i tidsenheter - det vill säga antalet millisekunder som har gått sedan 1 januari 1970. I Java är Date ett objekt, vilket betyder att det har flera metoder för att göra jämförelser. Varje metod som används för att jämföra två datum jämför i huvudsak tidsenheterna för de två datumen.

Steg

Metod 1 av 4: Använda comparTo

4301351 1
4301351 1

Steg 1. Använd CompareTo

Date -objektet implementerar Comparable så att 2 datum kan jämföras med varandra direkt med metoden comparTo. Om båda datumen har samma antal i tidsenheter, returnerar metoden noll. Om det andra datumet är mindre än det första returneras ett värde mindre än noll. Om det andra datumet är större än det första, returnerar metoden ett värde som är större än noll. Om båda datumen är desamma returnerar metoden ett nollvärde.

4301351 2
4301351 2

Steg 2. Skapa flera datumobjekt

Du måste skapa flera datumobjekt innan du jämför dem. Ett av de enklaste sätten att göra detta är att använda klassen SimpleDateFormat. Denna klass gör det enkelt att konvertera ett inmatningsdatumvärde till ett datumobjekt.

    SimpleDateFormat sdf = nytt SimpleDateFormat ("åååå-MM-dd"). För att deklarera ett värde i ett nytt '' Objektdatum '', använd samma datumformat när du skapar datumet. Datum datum1 = sdf.parse ("1995-02-23"); // datum1 är 23 februari 1995 Datum datum2 = sdf.parse ("2001-10-31"); // datum2 är 31 oktober 2001 Datum datum3 = sdf.parse ("1995-02-23"); // date3 är 23 februari 1995

4301351 3
4301351 3

Steg 3. Jämför datumobjekten

Följande kod visar exempel för varje fall - mindre än, lika med och större än.

    date1.compareTo (date2); // date1 <date2, returnerar ett värde mindre än 0 date2.compareTo (date1); // date2> date1, returnerar ett värde större än 0 date1.compareTo (date3); // date1 = date3, så det kommer ut 0 på konsolen

Metod 2 av 4: Använda lika, efter och före

4301351 4
4301351 4

Steg 1. Använd lika, efter och före

Datum kan jämföras med lika, efter och före metoder. Om två datum har samma värde i tid returnerar metoden lika med true. I följande exempel används datumobjektet som skapats i metoden jämförTo till.

4301351 5
4301351 5

Steg 2. Jämför med metoden före

Följande kod visar ett exempelfall som returnerar true och false. Om datum1 är ett datum före datum2 returnerar före -metoden true. Annars returnerar metoden före falsk.

    System.out.print (datum1.före (datum2)); // visa värdet '' true '' System.out.print (date2.before (date2)); // returnera värdet '' false ''

4301351 6
4301351 6

Steg 3. Jämför med eftermetoden

Följande kod visar ett exempelfall som returnerar true och false. Om datum2 är datumet efter datum1 returnerar eftermetoden true. Annars returnerar eftermetoden falsk.

    System.out.print (date2.after (date1)); // visa värdet '' true '' System.out.print (date1.after (date2)); // visa värdet '' false ''

4301351 7
4301351 7

Steg 4. Jämför med likvärdig metod

Följande kod visar ett exempelfall som returnerar true och false. Om båda datumen är lika, returnerar metoden lika med true. Annars returnerar metoden likvärdig falsk.

    System.out.print (date1.equals (date3)); // visa värdet '' true '' System.out.print (date1.equals (date2)); // visa värdet '' false ''

Metod 3 av 4: Använda klass kalender

4301351 8
4301351 8

Steg 1. Använd klass kalender

Kalenderklassen har också jämförelseTo, lika med, efter och före metoder som fungerar på samma sätt som de som beskrivits tidigare för klassen Datum. Så om datuminformationen lagras i en klasskalender behöver du inte extrahera datumet bara för att göra en jämförelse.

4301351 9
4301351 9

Steg 2. Skapa en instans av kalendern

Om du vill använda metoder i klass kalender måste du skapa flera kalenderinstanser. Lyckligtvis kan du använda värdena från en tidigare skapad Date -instans.

    Kalender cal1 = Calendar.getInstance (); // deklarera cal1 Kalender cal2 = Calendar.getInstance (); // deklarera cal2 Kalender cal3 = Calendar.getInstance (); // deklarera cal3 cal1.setTime (datum1); // sätt datumet i cal1 cal2.setTime (date2); cal3.setTime (datum3);

4301351 10
4301351 10

Steg 3. Jämför cal1 och cal2 med metoden före

Följande kod matar ut värdet på tr

    System.out.print (cal1.before (cal2)); // returnerar värdet '' true ''

4301351 11
4301351 11

Steg 4. Jämför cal1 och cal2 med hjälp av eftermetoden

Följande kod returnerar falskt eftersom cal1 är datumet före cal2.

    System.out.print (cal1.after (cal2)); // returnera värdet '' false ''

4301351 12
4301351 12

Steg 5. Jämför cal1 och cal2 med likvärdig metod

Följande kod visar ett exempelfall som returnerar true och false. Tillståndet beror på att kalenderinstansen jämförs. Följande kod returnerar värdet "true" och sedan "false" på nästa rad.

    System.out.println (cal1.equals (cal3)); // returnera värdet '' true '': cal1 == cal3 System.out.print (cal1.equals (cal2)); // returnera värdet '' false '': cal1! = cal2

Metod 4 av 4: Använda getTime

4301351 13
4301351 13

Steg 1. Använd getTime

Du kan också direkt jämföra tidsenhetsvärdena för två datum, även om de två föregående metoderna kan vara lättare att läsa och att föredra. På så sätt jämför du två primitiva datatyper så att du kan använda operanderna "" och "==".

4301351 14
4301351 14

Steg 2. Skapa ett tidsobjekt i långt talformat

Innan du kan jämföra datum måste du skapa ett långt heltal från det tidigare skapade datumobjektet. Lyckligtvis kommer metoden getTime () att göra det åt dig.

    long time1 = getTime (date1); // förklara primitiv tid1 av datum1 lång tid2 = getTime (datum2); // deklarera primitiv tid2 värde av datum2

4301351 15
4301351 15

Steg 3. Utför en mindre än jämförelse

Använd operandens mindre än (<) för att jämföra dessa två heltalsvärden. Eftersom tid1 är mindre än tid2, visas det första meddelandet. Den andra satsen ingår för att slutföra syntaxen.

    if (time1 <time2) {System.out.println ("datum1 är datumet före datum2"); // kommer att visas eftersom time1 <time2} else {System.out.println ("datum1 är inte ett datum före datum2"); }

4301351 16
4301351 16

Steg 4. Utför en större än jämförelse

Använd operanden större än (>) för att jämföra dessa två heltalsvärden. Eftersom tid1 är större än tid2, visas det första meddelandet. Den andra satsen ingår för att slutföra syntaxen.

    if (time2> time1) {System.out.println ("datum2 är datumet efter datum1"); // kommer att visas eftersom time2> time1} annars {System.out.println ("datum2 är inte datumet efter datum1"); }

4301351 17
4301351 17

Steg 5. Gör en likvärdig jämförelse

Använd operandfunktionen för att kontrollera lika värden (==) för att jämföra dessa två heltal. Eftersom tid1 är lika med tid3 kommer det första meddelandet att visas. Om programflödet går in i annat -satsen betyder det att de två gångerna inte har samma värde.

    if (time1 == time2) {System.out.println ("båda datumen är desamma"); } else {System.out.println ("Den första är inte densamma som den andra"); // visas eftersom time1! = time2}

Rekommenderad: