Ka shumë mënyra për të krahasuar dy data në gjuhën e programimit Java. Në kompjuterët, një datë përfaqësohet nga një numër (lloji i të dhënave i gjatë) në njësi të kohës - domethënë, numri i milisekondave që kanë kaluar që nga 1 janari 1970. Në Java, Data është një objekt, që do të thotë se ka disa metoda për të bërë krahasime. Çdo metodë e përdorur për të krahasuar dy data është në thelb krahasimi i njësive kohore të dy datave.
Hapi
Metoda 1 nga 4: Përdorimi i krahasimitTo
Hapi 1. Përdorni krahasiminTo
Objekti Data zbaton Krahasueshëm kështu që 2 data mund të krahasohen me njëra -tjetrën drejtpërdrejt me metodën e krahasimitTo. Nëse të dy datat kanë të njëjtin numër në njësitë kohore, atëherë metoda kthehet në zero. Nëse data e dytë është më e vogël se e para, kthehet një vlerë më pak se zero. Nëse data e dytë është më e madhe se e para, metoda kthen një vlerë më të madhe se zero. Nëse të dy datat janë të njëjta, atëherë metoda do të kthejë një vlerë null.
Hapi 2. Krijoni objekte të shumta Data
Ju duhet të krijoni objekte të shumta të datës para se t'i krahasoni ato. Një nga mënyrat më të lehta për ta bërë këtë është përdorimi i klasës SimpleDateFormat. Kjo klasë e bën të lehtë shndërrimin e një vlere të datës hyrëse në një objekt Data.
SimpleDateFormat sdf = SimpleDateFormat e re ("yyyy-MM-dd"). Për të deklaruar një vlerë në një '' Data e Objektit '' të ri, përdorni të njëjtin format të datës kur krijoni datën. Data e datës1 = sdf.parse ("1995-02-23"); // data1 është 23 shkurt 1995 Data e datës2 = sdf.parse ("2001-10-31"); // data2 është 31 tetor 2001 Data e datës3 = sdf.parse ("1995-02-23"); // data3 është 23 shkurt 1995
Hapi 3. Krahasoni objektet Date
Kodi i mëposhtëm do t'ju tregojë shembuj për secilin rast - më pak se, i barabartë dhe më i madh se.
date1. Krahasoni me (date2); // date1 <date2, kthen një vlerë më të vogël se 0 date2.compareTo (date1); // date2> date1, kthen një vlerë më të madhe se 0 date1.compareTo (date3); // date1 = date3, kështu që do të dalë 0 në tastierë
Metoda 2 nga 4: Përdorimi i barabartë, pas dhe para
Hapi 1. Përdorni të barabartë, para dhe më parë
Datat mund të krahasohen duke përdorur metodat e barabarta, pas dhe para. Nëse dy data kanë të njëjtën vlerë në kohë, metoda e barabartë kthehet e vërtetë. Shembulli i mëposhtëm do të përdorë objektin Data i krijuar në metodën e krahasimitTo.
Hapi 2. Krahasoni me metodën e mëparshme
Kodi i mëposhtëm tregon një rast shembull që kthen true dhe false. Nëse data1 është një datë para datës2, metoda e mëparshme kthehet e vërtetë. Përndryshe, metoda para kthehet false.
System.out.print (data1.para (date2)); // shfaq vlerën '' true '' System.out.print (date2.parafore (date2)); // ktheni vlerën "false"
Hapi 3. Krahasoni duke përdorur metodën pas
Kodi i mëposhtëm tregon një rast shembull që kthen true dhe false. Nëse data2 është data pas datës 1, metoda after kthehet e vërtetë. Përndryshe, metoda after do të kthehet false.
System.out.print (date2.after (date1)); // shfaq vlerën '' e vërtetë '' System.out.print (date1.after (date2)); // shfaq vlerën '' false ''
Hapi 4. Krahasoni me metodën e barabartë
Kodi i mëposhtëm tregon një rast shembull që kthen true dhe false. Nëse të dy datat janë të barabarta, metoda e barabartë kthehet e vërtetë. Përndryshe, metoda e barabartë kthehet false.
System.out.print (date1.equals (date3)); // shfaq vlerën '' e vërtetë '' System.out.print (date1.equals (date2)); // shfaq vlerën '' false ''
Metoda 3 nga 4: Përdorimi i Kalendarit të Klasave
Hapi 1. Përdorni Kalendarin e klasës
Klasa e kalendarit gjithashtu ka krahasuar me, të barabarta, pas dhe para metodave që funksionojnë njësoj si ato të përshkruara më herët për klasën Data. Pra, nëse informacioni i datës ruhet në Kalendarin e Klasave, nuk keni nevojë të nxirrni datën vetëm për të bërë një krahasim.
Hapi 2. Krijo një shembull të Kalendarit
Për të përdorur metoda në Kalendarin e Klasës, duhet të krijoni raste të shumta të Kalendarit. Për fat të mirë, ju mund të përdorni vlerat nga një shembull Data i krijuar më parë.
Kalendari cal1 = Calendar.getInstance (); // deklaro cal1 Calendar cal2 = Calendar.getInstance (); // deklaro cal2 Calendar cal3 = Calendar.getInstance (); // deklaro cal3 cal1.setTime (data 1); // vendos datën në cal1 cal2.setTime (data2); cal3.setTime (data3);
Hapi 3. Krahasoni cal1 dhe cal2 duke përdorur metodën e mëparshme
Kodi i mëposhtëm do të nxjerrë vlerën e tr
System.out.print (cal1.para (cal2)); // do të kthejë vlerën '' e vërtetë ''
Hapi 4. Krahasoni cal1 dhe cal2 duke përdorur metodën after
Kodi i mëposhtëm do të kthehet i rremë sepse cal1 është data para kal2.
System.out.print (cal1.pas (cal2)); // ktheni vlerën "false"
Hapi 5. Krahasoni cal1 dhe cal2 duke përdorur metodën equals
Kodi i mëposhtëm do të tregojë një rast shembull që kthen true dhe false. Gjendja varet nga rasti i Kalendarit që krahasohet. Kodi i mëposhtëm do të kthejë vlerën "e vërtetë", pastaj "e rreme" në rreshtin tjetër.
System.out.println (cal1.e barabartë (cal3)); // ktheni vlerën '' e vërtetë '': cal1 == cal3 System.out.print (cal1.equals (cal2)); // ktheni vlerën '' false '': cal1! = cal2
Metoda 4 nga 4: Përdorimi i getTime
Hapi 1. Përdorni getTime
Ju gjithashtu mund të krahasoni drejtpërdrejt vlerat e njësisë kohore të dy datave, megjithëse dy metodat e mëparshme mund të jenë më të lehta për t'u lexuar dhe të preferueshme. Në këtë mënyrë do të krahasoni 2 lloje të të dhënave primitive, kështu që mund të përdorni operandët "" dhe "==".
Hapi 2. Krijo një objekt kohor në formatin Numër i gjatë
Para se të krahasoni datat, duhet të krijoni një vlerë të plotë të gjatë nga objekti i krijuar më parë Data. Për fat të mirë, metoda getTime () do ta bëjë atë për ju.
kohë e gjatë1 = getTime (data1); // shpall kohën primitive1 të datës1 kohë të gjatë2 = getTime (datë2); // të deklarojë kohën primitive2 vlerën e datës2
Hapi 3. Kryeni një krahasim më pak se sa
Përdorni operandin më pak se (<) për të krahasuar këto dy vlera të plota. Meqenëse koha1 është më pak se koha2, do të shfaqet mesazhi i parë. Deklarata else përfshihet për të përfunduar sintaksën.
nëse (koha1 <koha2) {System.out.println ("data1 është data para datës2"); // do të shfaqet sepse koha1 <time2} else {System.out.println ("data1 nuk është një datë para datës2"); }
Hapi 4. Kryeni një krahasim më të madh se sa
Përdorni operandin më të madh se (>) për të krahasuar këto dy vlera të plota. Meqenëse koha1 është më e madhe se koha2, do të shfaqet mesazhi i parë. Deklarata else përfshihet për të përfunduar sintaksën.
nëse (koha2> koha1) {System.out.println ("data2 është data pas datës1"); // do të shfaqet sepse koha2> koha1} tjetër {System.out.println ("data2 nuk është data pas datës1"); }
Hapi 5. Kryeni një krahasim të barabartë
Përdorni funksionin operand për të kontrolluar barazinë e vlerave (==) për të krahasuar këto dy numra të plotë. Meqenëse koha1 është e barabartë me kohën3, do të shfaqet mesazhi i parë. Nëse rrjedha e programit kalon në deklaratën else, kjo do të thotë që të dy kohët nuk kanë të njëjtën vlerë.
if (time1 == time2) {System.out.println ("të dy datat janë të njëjta"); } else {System.out.println ("E para nuk është e njëjtë me të dytin"); // do të shfaqet sepse koha1! = koha2}