Usporedite datume na Javi

Autor: Roger Morrison
Datum Stvaranja: 24 Rujan 2021
Datum Ažuriranja: 1 Lipanj 2024
Anonim
Morali smo na operaciju 👨‍⚕️| Ženski Svijet 🦋
Video: Morali smo na operaciju 👨‍⚕️| Ženski Svijet 🦋

Sadržaj

Postoji nekoliko načina uspoređivanja datuma u Javi. Datum je interno predstavljen kao (dugačka) vremenska točka - broj milisekundi koje su prošle od 1. siječnja 1970. U Javi je datum objekt Date, što znači da sadrži više metoda za usporedbu datuma. Bilo koja metoda usporedbe dva datuma u osnovi će usporediti proteklo vrijeme oba datuma.

Kročiti

Metoda 1 od 4: Korištenje naredbe "compareTo"

  1. Koristite compareTo. Date implementira ComparableDate> i tako se dva datuma mogu izravno međusobno uspoređivati ​​metodom compareTo. Ako datumi označavaju isti trenutak u vremenu, metoda će vratiti nulu. Ako je datum koji se uspoređuje prije datuma, vratit će se negativna vrijednost. Ako je datum koji se uspoređuje kasniji datum od datuma datuma, vratit će se pozitivna vrijednost. Ako su datumi isti, vratit će se nula.
  2. Stvorite objekte Date. Morat ćete stvoriti svaki datumski objekt prije nego što ga počnete uspoređivati. Jedan od načina za to je primjena klase SimpleDateFormat. To vam omogućuje jednostavan unos datuma u objekte Date.

      SimpleDateFormat sdf = novi SimpleDateFormat ("gggg-MM-dd"); // Za deklariranje vrijednosti u novim datumskim objektima.Koristite isti format datuma prilikom izrade datuma Date date1 = sdf.parse ("1995-02-23"); // date1 je 23. veljače 1995. Datum date2 = sdf.parse ("2001-10-31"); // date2 je 31. listopada 2001. Datum date3 = sdf.parse ("1995-02-23"); // date3 je 23. veljače 1995

  3. Usporedite datume. Ispod je prikazan svaki slučaj - manji od, jednak i veći od.

      date1.compareTo (date2); // date1 date2, manje od 0 date2.compareTo (date1); // date2> date1, vraća veće od 0 date1.compareTo (date3); // date1 = date3, vraća 0

Metoda 2 od 4: Korištenje metoda "jednako, nakon i prije"

  1. Koristite jednako, nakon i prije. Datumi se mogu međusobno uspoređivati ​​pomoću metoda jednakih, nakon i prije. Ako dva datuma označavaju isto vrijeme, metoda equals vratit će "true". Primjeri koriste prethodno stvorene datume metodom compareTo.
  2. Usporedite pomoću prethodne metode. Donji kod prikazuje slučaj istinitog i netačnog. Ako je date1 raniji od date2, rezultat je istinit. Ako nije, prije se vraća false.

      System.out.print (date1.before (date2)); // ispisati istinito System.out.print (date2.before (date2)); // ispisati lažno

  3. Usporedite to s metodom after. Donji kod prikazuje slučaj istinitog i netačnog. Ako je date2 kasniji od date1, tada after vraća true. Ako nije, nakon vraća false.

      System.out.print (date2.after (date1)); // ispisati istinito System.out.print (date1.after (date2)); // ispisati lažno

  4. Usporedite metodom jednakosti. Kôd u nastavku prikazuje slučaj istine i netačnosti. Ako su datumi isti, equals vraća true. Ako ne, jednakost vraća false.

      System.out.print (date1.equals (date3)); // ispisati istinito System.out.print (date1.equals (date2)); // ispisati lažno

3. metoda od 4: Korištenje klase Kalendar

  1. Koristite klasu Kalendar. Klasa Kalendar također ima metode compareTo, equals, after i before, koje rade na isti način kao što je gore opisano za klasu datuma. Dakle, ako se podaci o datumu čuvaju u kalendaru, nema potrebe za izdvajanjem "date", već samo za usporedbu dva datuma.
  2. Stvorite instancu kalendara. Da biste koristili metode Kalendara, trebaju vam neke instance Kalendara. Srećom, možete koristiti vrijeme kako ga generiraju instance datuma.

      Kalendar cal1 = Calendar.getInstance (); // proglašava cal1 kalendar cal2 = Calendar.getInstance (); // proglašava cal2 kalendar cal3 = Calendar.getInstance (); // deklarira cal3 cal1.setTime (date1); // primjenjuje datum na cal1 cal2.setTime (date2); cal3.setTime (datum3);

  3. Usporedite cal1 i cal2 koristeći prethodno. Kôd u nastavku vraća true jer je cal1 raniji od cal2.

      System.out.print (cal1.before (cal2)); // ispisati istinito

  4. Usporedite cal1 i cal2 koristeći after. Kôd u nastavku vraća false jer je cal1 raniji od cal2.

      System.out.print (cal1.after (cal2)); // ispisati lažno

  5. Usporedite cal1 i cal2 koristeći jednako. Kôd u nastavku prikazuje primjere istinitih i netačnih podataka. Stanje ovisi o primjercima kalendara koji se uspoređuju. Kôd u nastavku vraća "true", a zatim "false" u sljedećem retku.

      System.out.println (cal1.equals (cal3)); // ispis istinito: cal1 == cal3 System.out.print (cal1.equals (cal2)); // ispis netačno: cal1! = cal2

Metoda 4 od 4: Uporaba metode "getTime"

  1. Koristite getTime. Također je moguće izravno usporediti dvije vremenske točke, iako će bilo koji od prethodnih pristupa vjerojatno dati čitljivije rezultate i stoga je poželjniji. Ovo je usporedba dviju primitivnih vrsta podataka, pa se to može učiniti s "", ">" i "==".
  2. Stvorite "duge" vremenske objekte. Da biste mogli uspoređivati ​​datume, morate stvoriti duge cijele brojeve iz podataka prethodno stvorenih objekata Date. Srećom, metoda getTime () učinit će većinu posla umjesto vas.

      dugo vrijeme1 = getTime (datum1); // deklarira primitivno vrijeme1 datuma1 dugo vrijeme2 = getTime (datum2); // proglašava primitivno vrijeme2 datuma2

  3. Koristite jednadžbu "manje od". Upotrijebite simbol "manje od" () za usporedbu ove dvije cjelobrojne vrijednosti. Budući da je vrijeme1 manje od vremena2, prvu poruku treba ispisati na zaslon. Izjava else uključena je radi ispravne sintakse.

      if (time1 time2) {System.out.println ("date1 je raniji od date2"); // ispis jer time1 time2} else {System.out.println ("date1 je kasniji ili jednak date2"); }

  4. Napravite usporedbu "veću od". Upotrijebite simbol "veće od" (>) za usporedbu ove dvije cjelobrojne vrijednosti. Budući da je vrijeme1 veće od vremena2, prva poruka ispisuje se na zaslonu. Izjava else uključena je za ispravnu sintaksu.

      if (time2> time1) {System.out.println ("date2 dolazi iza date1"); // ispis jer time2> time1} else {System.out.println ("date2 je raniji ili jednak datumu1"); }

  5. Napravite usporedbu "jednako". Upotrijebite simbol (==) za usporedbu ove dvije cjelobrojne vrijednosti. Budući da je vrijeme1 jednako vremenu3, prvu poruku treba ispisati. Ako program dođe do naredbe else, to znači da vremena nisu ista.

      if (time1 == time2) {System.out.println ("Datumi su jednaki"); } else {System.out.println ("Datumi nisu jednaki"); // ispis jer vrijeme1! = vrijeme2}