Sammenlign datoer i java

Det er flere måter å sammenligne datoer på i Java. Internt er en dato representert som et (langt) tidspunkt – antall millisekunder som har gått siden 1. januar 1970. I Java er date Date-objektet, som betyr at det inneholder flere metoder (metoder) for å sammenligne datoer. Enhver metode for å sammenligne to datoer vil i utgangspunktet sammenligne den medgåtte tiden for begge datoene.

Trinn

Metode 1 av 4: Bruke `compareTo`-kommandoen

Bilde med tittel 4301351 1
1. Bruk compareTo. Dato implementerer sammenlignbar
Bilde med tittel 4301351 2
2. Lag Dato-objektene. Du må opprette hvert datoobjekt før du kan sammenligne dem. En måte å gjøre dette på er å bruke SimpleDateFormat-klassen. Lar deg enkelt legge inn datoer i Dato-objekter.
SimpleDateFormat sdf = new SimpleDateFormat(`åååå-MM-dd`); //For å deklarere verdier i nye datoobjekter. Bruk samme datoformat når du oppretter datoer Datodatum1 = 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`); //dato3 er 23. februar 1995
Bilde med tittel 4301351 3
3. Sammenlign datoobjektene. Nedenfor viser hvert tilfelle – mindre enn, lik og større enn.
dato 1.sammenlignTil(dato2); //dato1 < dato2, mindre enn 0 dato2.sammenligneTil(dato1); //dato2 > dato1, returnerer større enn 0 dato1.sammenligneTil(dato3); //dato1 = dato3, returnerer 0

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

Bilde med tittel 4301351 4
1. Bruk like, etter og før. Datoer kan sammenlignes med metodene lik, etter og før. Hvis to datoer indikerer samme tid, vil lik-metoden returnere "true". Eksemplene bruker de tidligere opprettede datoene via compareTo-metoden.
Bilde med tittel 4301351 5
2. Sammenlign med før-metoden. Koden nedenfor viser et tilfelle av sant og usant. Hvis dato1 er tidligere enn dato2, er resultatet sant. Hvis ikke, returnerer før falsk.
System.ute.print(dato1.før(dato2)); //print true System.ute.print(dato2.før(dato2)); //skriv ut usann
Bilde med tittel 4301351 6
3. Sammenlign dette med etter-metoden. Koden nedenfor viser et tilfelle av sant og usant. Hvis dato2 er senere enn dato1, returnerer etter sann. Hvis ikke, returnerer falsk.
System.ute.print(dato2.after(date1));//print true System.ute.print(dato1.after(date2));//print false
Bilde med tittel 4301351 7
4. Sammenlign med lik metoden. Koden nedenfor viser et tilfelle av sant og usant. Hvis datoene er like, returnerer equals sant. Hvis ikke, returnerer lik falsk.
System.ute.print(dato1.lik(dato3));//print true System.ute.print(dato1.lik(dato2));//skriv ut usann

Metode 3 av 4: Bruke Kalender-klassen

Bilde med tittel 4301351 8
1. Bruk kalenderklassen. Kalender-klassen har også compareTo, equals, after og before-metoder, som fungerer på samme måte som beskrevet ovenfor for datoklassen. Så hvis datodataene holdes i en kalender, er det ikke nødvendig å trekke ut "dato" bare for å sammenligne to datoer.
Bilde med tittel 4301351 9
2. Opprett forekomst av kalender. For å bruke kalendermetodene trenger du noen kalenderforekomster. Heldigvis kan du bruke tiden som generert av Dato-forekomstene.
Kalenderanrop1 = Kalender.getInstance(); //declares cal1 Kalender cal2 = Kalender.getInstance(); //declares cal2 Kalender cal3 = Kalender.getInstance(); //erklærer cal3 cal1.setTime(dato1); //gjelder dato for cal1 cal2.setTime(dato2); cal3.setTime(dato3);
Bilde med tittelen 4301351 10
3. Sammenlign cal1 og cal2 med tidligere. Koden nedenfor returnerer sann fordi cal1 er før cal2.
System.ute.print(cal1.før(cal2)); //print true
Bilde med tittelen 4301351 11
4. Sammenlign cal1 og cal2 med etter. Koden nedenfor returnerer usann, fordi cal1 er før cal2.
System.ute.print(cal1.after(cal2)); //skriv ut usann
Bilde med tittelen 4301351 12
5. Sammenlign cal1 og cal2 ved å bruke lik. Koden nedenfor viser et eksempel på både sant og usant. Tilstanden avhenger av Kalender-forekomstene som sammenlignes. Koden nedenfor gir "true" og deretter "false" på neste linje.
System.ute.println(cal1.lik(cal3)); //print true: cal1 == cal3 System.ute.print(cal1.lik(cal2)); //print false: call1 != kal2

Metode 4 av 4: Bruke `getTime`-metoden

Bilde med tittelen 4301351 13
1. Bruk getTime. Det er også mulig å direkte sammenligne to tidspunkter, selv om noen av de foregående tilnærmingene sannsynligvis vil gi mer lesbare resultater og derfor foretrekkes. Dette er en sammenligning av to primitive datatyper, så kan gjøres med `<`, `>` og `==`.
Bilde med tittelen 4301351 14
2. Lag "langtidsobjekter". Før du kan sammenligne datoer, må du lage lange heltall fra dataene til de tidligere opprettede Dato-objektene. Heldigvis vil getTime()-metoden gjøre det meste av jobben for deg.
lang tid1 = getTid(dato1); //erklærer primitiv tid1 fra dato1 lang tid2 = getTime(dato2); //erklærer primitiv tid2 fra dato2
Bilde med tittelen 4301351 15
3. Bruk en "mindre enn"-ligning. Bruk et "mindre enn"-symbol (<) for å sammenligne disse to heltallsverdiene. Siden tid1 er mindre enn tid2, bør den første meldingen skrives ut på skjermen. else-setningen er inkludert for riktig syntaks.
if(tid1 < tid2){ System.ute.println(`dato1 er tidligere enn dato2`); //skriv ut fordi tid1 < time2 } else{ System.ute.println(`dato1 er senere enn eller lik dato2`); }
Bilde med tittelen 4301351 16
4. Gjør en "større enn" sammenligning. Bruk større enn-symbolet (>) for å sammenligne disse to heltallene. Fordi tid1 er større enn tid2, skrives den første meldingen ut på skjermen. else-setningen er inkludert for korrekt syntaks.
if(tid2 > tid1){ System.ute.println(`dato2 kommer etter dato1`); // skriv ut fordi tid2 > time1} annet{ System.ute.println(`dato2 er tidligere enn eller lik dato1`); }
Bilde med tittelen 4301351 17
5. Gjør en "lik" sammenligning. Bruk symbolet (==) for å sammenligne disse to heltallene. Siden tid1 er lik tid3, bør den første meldingen skrives ut. Hvis programmet kommer til else-setningen, betyr det at tidene ikke er like.
if(tid1 == tid2){ System.ute.println(`Datoene samsvarer`); } annet{ System.ute.println(`Datoene er ikke de samme`); //skriv ut fordi tid1 != tid2 }

Оцените, пожалуйста статью