Ir daudz veidu, kā salīdzināt divus datumus Java programmēšanas valodā. Datoros datums tiek attēlots ar skaitli (datu tips Long) laika vienībās - tas ir, milisekundes, kas pagājušas kopš 1970. gada 1. janvāra. Programmā Java datums ir objekts, kas nozīmē, ka tam ir vairākas metodes salīdzināšanai. Jebkura divu datumu salīdzināšanas metode būtībā ir abu datumu laika vienību salīdzināšana.
Solis
1. metode no 4: salīdzināšanas izmantošana
1. darbība. Izmantojiet salīdzinājumu
Datuma objekts ievieš salīdzināmus, tāpēc 2 datumus var salīdzināt viens ar otru tieši ar salīdzināšanas metodi. Ja abos datumos laika vienībās ir vienāds skaitlis, tad metode atgriež nulli. Ja otrais datums ir mazāks par pirmo, tiek atgriezta vērtība, kas mazāka par nulli. Ja otrais datums ir lielāks par pirmo, metode atgriež vērtību, kas lielāka par nulli. Ja abi datumi ir vienādi, metode atgriež nulles vērtību.
2. solis. Izveidojiet vairākus datuma objektus
Pirms to salīdzināšanas ir jāizveido vairāki datuma objekti. Viens no vienkāršākajiem veidiem, kā to izdarīt, ir izmantot klasi SimpleDateFormat. Šī klase atvieglo ievades datuma vērtības pārvēršanu datuma objektā.
SimpleDateFormat sdf = jauns SimpleDateFormat ("gggg-MM-dd"). Lai deklarētu vērtību jaunā objekta datumā, veidojot datumu, izmantojiet to pašu datuma formātu. Datums datums1 = 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
Šis kods parādīs piemērus katram gadījumam - mazāks par, vienāds un lielāks par.
date1.compareTo (datums2); // datums1 <datums2, atgriež vērtību, kas ir mazāka par 0 date2.compareTo (datums1); // datums2> datums1, atgriež vērtību, kas lielāka par 0 date1.compareTo (date3); // datums1 = datums3, tāpēc konsolē tiks izvadīts 0
2. metode no 4: izmantojot vienādus, pēc un pirms
1. solis. Izmantojiet vienādus, pēc un pirms
Datumus var salīdzināt, izmantojot vienādas, pēc un pirms metodes. Ja diviem datumiem ir vienāda laika vērtība, metode vienāds ar atgriež patiesu. Šajā piemērā tiks izmantots salīdzināšanas metodes metodē izveidotais objekts Datums.
2. solis. Salīdziniet ar iepriekšējo metodi
Šis kods parāda gadījuma piemēru, kas atgriež patiesu un nepatiesu. Ja datums1 ir datums pirms datuma2, metode pirms atgriež patieso. Pretējā gadījumā metode pirms atgriež nepatiesu.
System.out.print (date1.before (date2)); // parādīt vērtību '' true '' System.out.print (date2.before (date2)); // atgriež vērtību "false"
Solis 3. Salīdziniet, izmantojot metodi pēc
Šis kods parāda gadījuma piemēru, kas atgriež patiesu un nepatiesu. Ja datums2 ir datums pēc datuma1, metode pēc tiek atgriezta patiesa. Pretējā gadījumā metode pēc atgriezīsies nepatiesa.
System.out.print (date2.after (date1)); // parādīt vērtību "true" System.out.print (date1.after (date2)); // parādīt vērtību "false"
Solis 4. Salīdziniet ar vienādu metodi
Šis kods parāda gadījuma piemēru, kas atgriež patiesu un nepatiesu. Ja abi datumi ir vienādi, vienādības metode atgriež patieso. Pretējā gadījumā metode vienāds ar atgriež nepatiesu.
System.out.print (date1.equals (date3)); // parādīt vērtību "true" System.out.print (date1.equals (date2)); // parādīt vērtību "false"
3. metode no 4: Klases kalendāra izmantošana
1. darbība. Izmantojiet klases kalendāru
Klasei Kalendārs ir arī metodes salīdzināt līdz, vienādas, pēc un pirms metodes, kas darbojas tāpat kā tās, kas aprakstītas iepriekš klasei Datums. Tātad, ja datuma informācija tiek glabāta klases kalendārā, jums nav jāizņem datums, lai veiktu salīdzinājumu.
2. solis. Izveidojiet kalendāra gadījumu
Lai izmantotu metodes klases kalendārā, jums ir jāizveido vairāki kalendāra gadījumi. Par laimi, jūs varat izmantot vērtības no iepriekš izveidotas datuma instances.
Kalendārs cal1 = Calendar.getInstance (); // deklarēt cal1 Kalendārs cal2 = Calendar.getInstance (); // deklarēt cal2 Kalendārs cal3 = Calendar.getInstance (); // deklarēt cal3 cal1.setTime (datums1); // ielieciet datumu cal1 cal2.setTime (date2); cal3.setTime (datums3);
Solis 3. Salīdziniet cal1 un cal2, izmantojot iepriekšējo metodi
Šis kods izvadīs tr vērtību
System.out.print (cal1.before (cal2)); // atgriezīs vērtību "true"
Solis 4. Salīdziniet cal1 un cal2, izmantojot metodi after
Šis kods atgriezīs nepatiesu, jo cal1 ir datums pirms cal2.
System.out.print (cal1.after (cal2)); // atgriež vērtību "false"
Solis 5. Salīdziniet cal1 un cal2, izmantojot vienādu metodi
Šis kods parādīs gadījuma piemēru, kas atgriež patiesu un nepatiesu. Stāvoklis ir atkarīgs no salīdzināmās kalendāra instances. Šis kods atgriezīs vērtību "true", pēc tam "false" nākamajā rindā.
System.out.println (cal1.equals (cal3)); // atgriezt vērtību '' true '': cal1 == cal3 System.out.print (cal1.equals (cal2)); // atgriež vērtību '' false '': cal1! = cal2
4. metode no 4: getTime izmantošana
1. darbība. Izmantojiet getTime
Varat arī tieši salīdzināt divu datumu laika vienību vērtības, lai gan iepriekšējās divas metodes var būt vieglāk lasāmas un vēlamākas. Tādā veidā jūs salīdzināsit 2 primitīvus datu veidus, lai varētu izmantot operandus "" un "==".
2. solis. Izveidojiet laika objektu garu skaitļu formātā
Lai varētu salīdzināt datumus, no iepriekš izveidotā datuma objekta ir jāizveido garais vesels skaitlis. Par laimi, metode getTime () to darīs jūsu vietā.
ilgs laiks1 = getTime (datums1); // deklarēt datuma primitīvo laiku1 ilgu laiku2 = getTime (datums2); // deklarēt datuma2 primitīvo laiku2 vērtību
3. solis. Veiciet mazāku salīdzinājumu
Izmantojiet operandu, kas mazāks par (<), lai salīdzinātu šīs divas veselas skaitļa vērtības. Tā kā laiks1 ir mazāks par laiku2, parādīsies pirmais ziņojums. Cits paziņojums ir iekļauts, lai pabeigtu sintaksi.
if (laiks1 <laiks2) {System.out.println ("datums1 ir datums pirms datuma2"); // tiks rādīts, jo laiks1 <laiks2} cits {System.out.println ("datums1 nav datums pirms datuma2"); }
4. solis. Veiciet lielāku salīdzinājumu
Izmantojiet operandu, kas lielāks par (>), lai salīdzinātu šīs divas veselas skaitļa vērtības. Tā kā laiks1 ir lielāks par laiku2, parādīsies pirmais ziņojums. Cits paziņojums ir iekļauts, lai pabeigtu sintaksi.
ja (laiks2> laiks1) {System.out.println ("datums2 ir datums pēc datuma1"); // tiks rādīts, jo laiks2> laiks1} cits {System.out.println ("datums2 nav datums pēc datuma1"); }
5. solis. Veiciet vienādu salīdzinājumu
Izmantojiet operanda funkciju, lai pārbaudītu vērtību vienādību (==), lai salīdzinātu šos divus veselos skaitļus. Tā kā laiks1 ir vienāds ar laiku3, parādīsies pirmais ziņojums. Ja programmas plūsma nonāk citā paziņojumā, tas nozīmē, ka abām reizēm nav vienādas vērtības.
if (laiks1 == laiks2) {System.out.println ("abi datumi ir vienādi"); } else {System.out.println ("Pirmais nav tas pats, kas otrais"); // tiks rādīts, jo laiks1! = laiks2}