4 måter å sammenligne to datoer i Java

Innholdsfortegnelse:

4 måter å sammenligne to datoer i Java
4 måter å sammenligne to datoer i Java

Video: 4 måter å sammenligne to datoer i Java

Video: 4 måter å sammenligne to datoer i Java
Video: Как работает Spring Boot и что такое auto-configuration. Магия? 2024, Desember
Anonim

Det er mange måter å sammenligne to datoer på Java -programmeringsspråket. På datamaskiner er en dato representert med et tall (datatypen Long) i tidsenheter - det vil si antall millisekunder som har gått siden 1. januar 1970. I Java er Date et objekt, noe som betyr at det har flere metoder for å gjøre sammenligninger. Enhver metode som brukes for å sammenligne to datoer, sammenligner i hovedsak tidsenhetene til de to datoene.

Steg

Metode 1 av 4: Bruke CompareTo

4301351 1
4301351 1

Trinn 1. Bruk CompareTo

Date -objektet implementerer Comparable slik at to datoer kan sammenlignes med hverandre direkte med comparTo -metoden. Hvis begge datoene har samme antall i tidsenheter, returnerer metoden null. Hvis den andre datoen er mindre enn den første, returneres en verdi mindre enn null. Hvis den andre datoen er større enn den første, returnerer metoden en verdi som er større enn null. Hvis begge datoene er like, returnerer metoden en nullverdi.

4301351 2
4301351 2

Trinn 2. Lag flere datoobjekter

Du må opprette flere datoobjekter før du sammenligner dem. En av de enkleste måtene å gjøre dette på er å bruke SimpleDateFormat -klassen. Denne klassen gjør det enkelt å konvertere en inngangsdatoverdi til et datoobjekt.

    SimpleDateFormat sdf = ny SimpleDateFormat ("åååå-MM-dd"). For å deklarere en verdi i en ny '' Objektdato '', bruk samme datoformat når du oppretter datoen. Dato date1 = sdf.parse ("1995-02-23"); // dato1 er 23. februar 1995 Dato dato2 = sdf.parse ("2001-10-31"); // dato2 er 31. oktober 2001 Dato dato3 = sdf.parse ("1995-02-23"); // date3 er 23. februar 1995

4301351 3
4301351 3

Trinn 3. Sammenlign datoobjektene

Følgende kode viser deg eksempler for hvert tilfelle - mindre enn, lik og større enn.

    date1.compareTo (date2); // date1 <date2, returnerer en verdi mindre enn 0 date2.compareTo (date1); // date2> date1, returnerer en verdi større enn 0 date1.compareTo (date3); // date1 = date3, så det kommer ut 0 på konsollen

Metode 2 av 4: Bruke lik, etter og før

4301351 4
4301351 4

Trinn 1. Bruk like, etter og før

Datoer kan sammenlignes ved hjelp av metodene lik, etter og før. Hvis to datoer har samme verdi i tid, returnerer likemetoden true. Følgende eksempel vil bruke datoobjektet som ble opprettet i eksempelet sammenligne til -metoden.

4301351 5
4301351 5

Trinn 2. Sammenlign med metoden før

Følgende kode viser et eksempel på et tilfelle som returnerer true og false. Hvis dato1 er en dato før dato2, returnerer før -metoden true. Ellers returnerer før -metoden falsk.

    System.out.print (date1.before (date2)); // vise verdien '' true '' System.out.print (date2.before (date2)); // returner verdien '' false ''

4301351 6
4301351 6

Trinn 3. Sammenlign med etter -metoden

Følgende kode viser et eksempel på et tilfelle som returnerer true og false. Hvis dato2 er datoen etter dato1, returnerer ettermetoden true. Ellers vil ettermetoden returnere usann.

    System.out.print (date2.after (date1)); // vis verdien '' true '' System.out.print (date1.after (date2)); // vis verdien '' false ''

4301351 7
4301351 7

Trinn 4. Sammenlign med lik metode

Følgende kode viser et eksempel på et tilfelle som returnerer true og false. Hvis begge datoene er like, returnerer likemetoden true. Ellers returnerer likemetoden falsk.

    System.out.print (date1.equals (date3)); // vis verdien '' true '' System.out.print (date1.equals (date2)); // vis verdien '' false ''

Metode 3 av 4: Bruke klassekalender

4301351 8
4301351 8

Trinn 1. Bruk klassekalender

Kalenderklassen har også sammenlignings -til, lik, etter og før metoder som fungerer på samme måte som de som er beskrevet tidligere for Dato -klassen. Så hvis datoinformasjonen er lagret i en klassekalender, trenger du ikke trekke ut datoen bare for å gjøre en sammenligning.

4301351 9
4301351 9

Trinn 2. Lag en forekomst av Kalender

For å bruke metoder i klassekalenderen må du opprette flere kalenderforekomster. Heldigvis kan du bruke verdiene fra en tidligere opprettet Date -forekomst.

    Kalender cal1 = Calendar.getInstance (); // deklar cal1 Kalender cal2 = Calendar.getInstance (); // deklar cal2 Kalender cal3 = Calendar.getInstance (); // deklar cal3 cal1.setTime (date1); // legg inn datoen i cal1 cal2.setTime (date2); cal3.setTime (date3);

4301351 10
4301351 10

Trinn 3. Sammenlign cal1 og cal2 ved å bruke metoden før

Følgende kode sender ut verdien til tr

    System.out.print (cal1.before (cal2)); // vil returnere verdien '' true ''

4301351 11
4301351 11

Trinn 4. Sammenlign cal1 og cal2 ved hjelp av ettermetoden

Følgende kode vil returnere false fordi cal1 er datoen før cal2.

    System.out.print (cal1.after (cal2)); // returner verdien '' false ''

4301351 12
4301351 12

Trinn 5. Sammenlign cal1 og cal2 ved hjelp av metoden lik

Følgende kode viser et eksempel på et tilfelle som returnerer true og false. Staten avhenger av at kalenderforekomsten blir sammenlignet. Følgende kode vil returnere verdien "true", deretter "false" på neste linje.

    System.out.println (cal1.equals (cal3)); // returner verdien '' true '': cal1 == cal3 System.out.print (cal1.equals (cal2)); // returner verdien '' false '': cal1! = cal2

Metode 4 av 4: Bruke getTime

4301351 13
4301351 13

Trinn 1. Bruk getTime

Du kan også sammenligne tidsenhetsverdiene for to datoer direkte, selv om de to foregående metodene kan være lettere å lese og å foretrekke. På denne måten vil du sammenligne to primitive datatyper, slik at du kan bruke operandene "" og "==".

4301351 14
4301351 14

Trinn 2. Lag et tidsobjekt i langt tallformat

Før du kan sammenligne datoer, må du opprette en verdi for langt helhet fra det tidligere opprettede datoobjektet. Heldigvis vil getTime () -metoden gjøre det for deg.

    long time1 = getTime (date1); // erklær primitiv tid1 av dato1 lang tid2 = getTime (dato2); // erklær primitiv tid2 verdi av dato2

4301351 15
4301351 15

Trinn 3. Utfør en mindre enn sammenligning

Bruk mindre enn (<) operand for å sammenligne disse to heltallsverdiene. Siden tid1 er mindre enn tid2, vises den første meldingen. Den andre setningen er inkludert for å fullføre syntaksen.

    if (time1 <time2) {System.out.println ("date1 er datoen før date2"); // vil vises fordi tid1 <tid2} annet {System.out.println ("dato1 er ikke en dato før dato2"); }

4301351 16
4301351 16

Trinn 4. Utfør en større enn sammenligning

Bruk operand større enn (>) til å sammenligne disse to heltallsverdiene. Fordi tid1 er større enn tid2, vises den første meldingen. Den andre setningen er inkludert for å fullføre syntaksen.

    if (time2> time1) {System.out.println ("date2 er datoen etter date1"); // vil vises fordi time2> time1} else {System.out.println ("date2 er ikke datoen etter date1"); }

4301351 17
4301351 17

Trinn 5. Utfør en lik sammenligning

Bruk operand -funksjonen til å kontrollere likheten mellom verdier (==) for å sammenligne disse to heltallene. Siden tid1 er lik tid3, vises den første meldingen. Hvis programflyten går inn i annet -setningen, betyr det at de to gangene ikke har samme verdi.

    if (time1 == time2) {System.out.println ("begge datoene er like"); } annet {System.out.println ("Den første er ikke den samme som den andre"); // vises fordi time1! = time2}

Anbefalt: