4 načina da uporedite dva datuma na Javi

Sadržaj:

4 načina da uporedite dva datuma na Javi
4 načina da uporedite dva datuma na Javi

Video: 4 načina da uporedite dva datuma na Javi

Video: 4 načina da uporedite dva datuma na Javi
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, April
Anonim

Postoji mnogo načina za usporedbu dva datuma u programskom jeziku Java. U računarima je datum predstavljen brojem (tip podataka Long) u jedinicama vremena - to jest, broju milisekundi koje su protekle od 1. januara 1970. U Javi je Datum objekt, što znači da ima nekoliko metoda za poređenje. Bilo koja metoda koja se koristi za upoređivanje dva datuma u osnovi je poređenje vremenskih jedinica dva datuma.

Korak

Metoda 1 od 4: Korištenje compareTo

4301351 1
4301351 1

Korak 1. Koristite compareTo

Objekat Date implementira Comparable pa se 2 datuma mogu međusobno uporediti direktno metodom compareTo. Ako oba datuma imaju isti broj u vremenskim jedinicama, metoda vraća nulu. Ako je drugi datum manji od prvog, vraća se vrijednost manja od nule. Ako je drugi datum veći od prvog, metoda vraća vrijednost veću od nule. Ako su oba datuma ista, metoda će vratiti nultu vrijednost.

4301351 2
4301351 2

Korak 2. Kreirajte više objekata Date

Morate stvoriti više objekata Date prije nego ih usporedite. Jedan od najjednostavnijih načina za to je korištenje klase SimpleDateFormat. Ova klasa olakšava pretvaranje vrijednosti datuma unosa u objekt Date.

    SimpleDateFormat sdf = novi SimpleDateFormat ("gggg-MM-dd"). Za deklaraciju vrijednosti u novom '' Object Date '', koristite isti format datuma prilikom kreiranja datuma. Date date1 = sdf.parse ("1995-02-23"); // datum1 je 23. februar 1995. Datum datum2 = sdf.parse ("2001-10-31"); // datum2 je 31. oktobar 2001. Datum datum3 = sdf.parse ("1995-02-23"); // datum3 je 23. februar 1995. godine

4301351 3
4301351 3

Korak 3. Uporedite objekte Date

Sljedeći kôd pokazat će vam primjere za svaki slučaj - manji od, jednaki i veći od.

    date1.compareTo (date2); // date1 <date2, vraća vrijednost manju od 0 date2.compareTo (date1); // date2> date1, vraća vrijednost veću od 0 date1.compareTo (date3); // date1 = date3, pa će prikazati 0 na konzoli

Metoda 2 od 4: Korištenje jednakosti, nakon i prije

4301351 4
4301351 4

Korak 1. Koristite jednako, nakon i prije

Datumi se mogu uporediti pomoću metoda jednaki, poslije i prije. Ako dva datuma imaju istu vrijednost u vremenu, metoda equals vraća vrijednost true. Sljedeći primjer će koristiti objekt Date kreiran u primjeru metode compareTo.

4301351 5
4301351 5

Korak 2. Uporedite sa prethodnom metodom

Sljedeći kôd prikazuje primjer slučaja koji vraća vrijednost true i false. Ako je date1 datum prije date2, metoda before vraća true. U suprotnom, metoda before vraća false.

    System.out.print (date1.before (date2)); // prikazuje vrijednost '' true '' System.out.print (date2.before (date2)); // vraća vrijednost '' false ''

4301351 6
4301351 6

Korak 3. Uporedite metodom after

Sljedeći kod prikazuje primjer slučaja koji vraća true i false. Ako je date2 datum nakon date1, metoda after vraća true. U suprotnom, metoda after će se vratiti false.

    System.out.print (date2.after (date1)); // prikazuje vrijednost '' true '' System.out.print (date1.after (date2)); // prikazuje vrijednost '' false ''

4301351 7
4301351 7

Korak 4. Uporedite sa metodom equals

Sljedeći kod prikazuje primjer slučaja koji vraća true i false. Ako su oba datuma jednaka, metoda equals vraća vrijednost true. U suprotnom, metoda equals vraća false.

    System.out.print (date1.equals (date3)); // prikazuje vrijednost '' true '' System.out.print (date1.equals (date2)); // prikazuje vrijednost '' false ''

Metoda 3 od 4: Korištenje kalendara časova

4301351 8
4301351 8

Korak 1. Koristite Kalendar časova

Klasa Kalendar takođe ima metode compareTo, equals, after i before koje funkcionišu isto kao i one opisane ranije za klasu Date. Dakle, ako su podaci o datumu pohranjeni u kalendaru razreda, ne morate izdvajati datum samo radi usporedbe.

4301351 9
4301351 9

Korak 2. Kreirajte instancu kalendara

Da biste koristili metode u kalendaru razreda, morate stvoriti više instanci kalendara. Srećom, možete koristiti vrijednosti iz prethodno kreirane instance instance.

    Kalendar cal1 = Calendar.getInstance (); // proglašava cal1 Kalendar cal2 = Calendar.getInstance (); // proglašava cal2 Kalendar cal3 = Calendar.getInstance (); // proglašava cal3 cal1.setTime (date1); // stavlja datum u cal1 cal2.setTime (date2); cal3.setTime (date3);

4301351 10
4301351 10

Korak 3. Uporedite cal1 i cal2 koristeći metodu before

Sljedeći kôd će ispisati vrijednost tr

    System.out.print (cal1.before (cal2)); // vratit će vrijednost '' true ''

4301351 11
4301351 11

Korak 4. Uporedite cal1 i cal2 koristeći metodu after

Sljedeći kôd će vratiti false jer je cal1 datum prije cal2.

    System.out.print (cal1.after (cal2)); // vraća vrijednost '' false ''

4301351 12
4301351 12

Korak 5. Uporedite cal1 i cal2 koristeći metodu equals

Sljedeći kôd pokazat će primjer slučaja koji vraća true i false. Stanje ovisi o instanci kalendara koja se uspoređuje. Sljedeći kôd će vratiti vrijednost "true", a zatim "false" u sljedećem retku.

    System.out.println (cal1.equals (cal3)); // vraća vrijednost '' true '': cal1 == cal3 System.out.print (cal1.equals (cal2)); // vraća vrijednost '' false '': cal1! = cal2

Metoda 4 od 4: Korištenje getTime

4301351 13
4301351 13

Korak 1. Koristite getTime

Takođe možete direktno uporediti vrijednosti vremenskih jedinica dva datuma, iako su prethodne dvije metode lakše za čitanje i poželjnije. Na ovaj način ćete uspoređivati 2 primitivna tipa podataka, tako da možete koristiti operande "" i "==".

4301351 14
4301351 14

Korak 2. Kreirajte vremenski objekt u formatu dugog broja

Prije nego što možete usporediti datume, morate stvoriti vrijednost Long Integer iz prethodno kreiranog objekta Date. Srećom, metoda getTime () će to učiniti umjesto vas.

    long time1 = getTime (date1); // deklariramo primitivno vrijeme1 datuma1 dugo vrijeme2 = getTime (datum2); // deklariramo primitive time2 vrijednost date2

4301351 15
4301351 15

Korak 3. Izvršite manje od poređenja

Upotrijebite operand manji od (<) za usporedbu ove dvije cijele vrijednosti. Budući da je vrijeme1 manje od vremena2, pojavit će se prva poruka. Naredba else je uključena za dovršetak sintakse.

    if (time1 <time2) {System.out.println ("date1 je datum prije date2"); // će se prikazati jer time1 <time2} else {System.out.println ("datum1 nije datum prije datuma2"); }

4301351 16
4301351 16

Korak 4. Izvršite bolje od poređenja

Upotrijebite operand veći od (>) za usporedbu ove dvije cijele vrijednosti. Budući da je vrijeme1 veće od vremena2, pojavit će se prva poruka. Naredba else je uključena za dovršetak sintakse.

    if (time2> time1) {System.out.println ("datum2 je datum nakon datuma1"); // će se prikazati jer time2> time1} else {System.out.println ("datum2 nije datum nakon datuma1"); }

4301351 17
4301351 17

Korak 5. Izvršite poređenje jednako

Koristite funkciju operanda za provjeru jednakosti vrijednosti (==) za usporedbu ova dva cijela broja. Budući da je vrijeme1 jednako vremenu3, pojavit će se prva poruka. Ako tok programa ide u naredbu else, to znači da dva puta nemaju istu vrijednost.

    if (time1 == time2) {System.out.println ("oba datuma su ista"); } else {System.out.println ("Prvi nije isti kao drugi"); // prikazat će se jer vrijeme1! = vrijeme2}

Preporučuje se: