Ir dažādi veidi, kā salīdzināt Java datumus. Iekšēji datums tiek attēlots kā (garš) laika punkts - milisekundžu skaits, kas pagājis kopš 1970. gada 1. janvāra. Programmā Java datums ir objekts, kas nozīmē, ka tas ietver vairākas salīdzināšanas metodes. Jebkura divu datumu salīdzināšanas metode būtībā salīdzinās datumu laikus.
Soļi
1. metode no 4: salīdzināšanas izmantošana
1. darbība. Izmantojiet salīdzinājumu
Datums tiek īstenots Salīdzināms, tāpēc divus datumus var tieši salīdzināt ar salīdzināšanas metodi. Ja datumi attiecas uz vienu un to pašu laika periodu, metode atgriež nulli. Ja salīdzināmais datums ir pirms datuma argumenta, tiek atgriezta vērtība, kas mazāka par nulli. Ja salīdzināmais datums ir aiz datuma argumenta, tiek atgriezta vērtība, kas lielāka par nulli. Ja datumi ir vienādi, tiek atgriezta vērtība 0.
2. solis. Izveidojiet datuma objektus
Jums būs jāizveido katrs datuma objekts, lai varētu sākt to salīdzināšanu. Viens veids, kā to izdarīt, ir izmantot klasi SimpleDateFormat. Tas ļauj viegli ievadīt datuma vērtības datuma objektos.
SimpleDateFormat sdf = jauns SimpleDateFormat ("gggg-MM-dd"); // Vērtību deklarēšanai jaunos datuma objektos. izmantojiet to pašu datuma formātu, veidojot datumus Date date1 = sdf.parse ("1995-02-23"); // datums1 ir 1995. gada 23. februāris Datums datums2 = sdf.parse ("2001-10-31"); // datums2 ir 2001. gada 31. oktobris Datums datums3 = sdf.parse ("1995-02-23"); // datums3 ir 1995. gada 23. februāris
Solis 3. Salīdziniet datuma objektus
Zemāk redzamais kods parādīs katru gadījumu - mazāku par, vienādu un lielāku par.
date1.compareTo (datums2); // datums1 <datums2, atgriež mazāk par 0 date2.compareTo (datums1); // datums2> datums1, atgriež lielāku par 0 date1.compareTo (datums3); // datums1 = datums3, tāpēc konsolei tiks izdrukāts 0
2. metode no 4: vienādu, pēc un pirms izmantošana
1. solis. Izmantojiet vienādus, pēc un pirms
Datumus var salīdzināt ar vienādiem, pēc un pirms metodēm. Ja divi datumi attiecas uz vienu un to pašu laika periodu, metode “vienāds” atgriezīs patieso. Piemēri izmantos iepriekš izveidotos datumus no salīdzināšanas metodes.
Solis 2. Salīdziniet, izmantojot iepriekšējo metodi
Zemāk redzamais kods parāda patiesu un nepatiesu gadījumu. Ja datums1 ir pirms datuma2, pirms atgriež vērtību true. Ja tā nav, pirms atgriežas nepatiesa.
System.out.print (date1.before (date2)); // izdrukā patieso System.out.print (date2.before (date2)); // drukā viltus
Solis 3. Salīdziniet, izmantojot metodi pēc
Zemāk redzamais kods parāda patiesu un nepatiesu gadījumu. Ja datums2 ir pēc datuma1, pēc atgriež vērtību true. Ja tā nav, pēc atgriežas nepatiesa.
System.out.print (date2.after (date1)); // izdrukā true System.out.print (date1.after (date2)); // izdrukā false
Solis 4. Salīdziniet, izmantojot vienādu metodi
Zemāk redzamais kods parāda patiesu un nepatiesu gadījumu. Ja datumi ir vienādi, vienāds ar vienādu atgriež patiesu. Ja tie nav, vienāds ar atgriež nepatiesu.
System.out.print (date1.equals (date3)); // izdrukā true System.out.print (date1.equals (date2)); // izdrukā false
3. metode no 4: Kalendāra klases izmantošana
1. darbība. Izmantojiet kalendāru
Kalendāra klasei ir arī salīdzināšanas metodes, kas ir vienādas, pēc un pirms metodes, kas darbojas tādā pašā veidā, kā aprakstīts iepriekš datumu klasei. Tātad, ja datuma informācija tiek glabāta kalendārā, nav nepieciešams izvilkt datumu tikai salīdzinājuma veikšanai.
2. solis. Izveidojiet kalendāra gadījumus
Lai izmantotu kalendāra metodes, jums būs nepieciešami daži kalendāra gadījumi. Par laimi, jūs varat vienkārši iegūt laiku no jau izveidotajiem datuma gadījumiem.
Kalendārs cal1 = Calendar.getInstance (); // deklarē cal1 Kalendārs cal2 = Calendar.getInstance (); // deklarē cal2 Kalendārs cal3 = Calendar.getInstance (); // deklarē cal3 cal1.setTime (datums1); // attiecas datums uz cal1 cal2.setTime (datums2); cal3.setTime (datums3);
Solis 3. Salīdziniet cal1 un cal2, izmantojot iepriekš
Tālāk norādītajam kodam vajadzētu drukāt patiesu, jo cal1 ir pirms cal2.
System.out.print (cal1.before (cal2)); // drukās patiesi
Solis 4. Salīdziniet cal1 un cal2, izmantojot pēc
Zemāk esošajam kodam vajadzētu drukāt nepatiesu, jo cal1 ir pirms cal2.
System.out.print (cal1.after (cal2)); // drukā viltus
Solis 5. Salīdziniet cal1 un cal2, izmantojot vienādus
Zemāk esošais kods parādīs gan patiesa, gan nepatiesa gadījuma piemēru. Nosacījums ir atkarīgs no salīdzināmiem kalendāra gadījumiem. Kodam nākamajā rindā vajadzētu uzdrukāt “true”, pēc tam “false”.
System.out.println (cal1.equals (cal3)); // izdrukā true: cal1 == cal3 System.out.print (cal1.equals (cal2)); // drukā viltus: cal1! = cal2
4. metode no 4: getTime izmantošana
1. darbība. Izmantojiet getTime
Ir iespējams arī tieši salīdzināt divu datumu laiku, lai gan jebkura no iepriekšējām pieejām, visticamāk, būs lasāmāka un tik vēlama. Tas būs divu primitīvu datu veidu salīdzinājums, tāpēc to var izdarīt ar "" un "==".
2. solis. Izveidojiet ilgu laiku objektus
Lai varētu salīdzināt datumus, jāizveido gari veseli skaitļi ar iepriekš izveidoto datuma objektu datiem. Par laimi, getTime () metode lielāko daļu darba veiks jūsu vietā.
ilgs laiks1 = getTime (datums1); // deklarē primitīvo laiku1 no datuma1 ilgs laiks2 = getTime (datums2); // deklarē primitīvo laiku2 no datuma2
Solis 3. Veiciet mazāk nekā salīdzinājumu
Izmantojiet simbolu, kas mazāks par (<), lai salīdzinātu šīs divas veselas skaitļa vērtības. Tā kā laiks1 ir mazāks par laiku 2, pirmais ziņojums ir jāizdrukā. Cits paziņojums ir iekļauts pareizai sintaksei.
ja (laiks1 <laiks2) {System.out.println ("datums1 ir pirms datuma2"); // tiks drukāts kopš laika1 <laiks2} cits {System.out.println ("datums1 nav pirms datuma2"); }
4. solis. Veiciet lielāku salīdzinājumu
Izmantojiet simbolu, kas lielāks par (>), lai salīdzinātu šīs divas veselas skaitļa vērtības. Tā kā laiks1 ir lielāks par laiku 2, pirmais ziņojums ir jāizdrukā. Cits paziņojums ir iekļauts pareizai sintaksei.
ja (laiks2> laiks1) {System.out.println ("datums2 ir pēc datuma1"); // tiks drukāts kopš laika2> laiks1} cits {System.out.println ("datums2 nav pēc datuma1"); }
Solis 5. Veiciet vienādu salīdzinājumu
Izmantojiet simbolu, lai pārbaudītu vienlīdzību (==), lai salīdzinātu šīs divas veselas skaitļa vērtības. Tā kā laiks1 ir vienāds ar laiku3, pirmais ziņojums ir jāizdrukā. Ja programma nonāk pie paziņojuma else, tas nozīmē, ka laiki nav vienādi.
if (laiks1 == laiks2) {System.out.println ("datumi ir vienādi"); } else {System.out.println ("datumi nav vienādi"); // tiks drukāts kopš laika1! = laiks2}