Java програмчлалын хэл дээр хоёр огноог харьцуулах олон арга бий. Компьютерт огноог 1970 -аад оны 1 -р сарын 1 -ээс хойш өнгөрсөн миллисекундын тоо, цаг хугацааны нэгжээр илэрхийлдэг. харьцуулалт хийх хэд хэдэн арга. Хоёр огноог харьцуулах аливаа арга нь үндсэндээ хоёр огнооны цагийн нэгжийг харьцуулах явдал юм.
Алхам
4 -ийн 1 -р арга: харьцуулалтыг ашиглах
Алхам 1. CompareTo ашиглана уу
Date обьект нь Comparable -ийг хэрэгжүүлдэг тул 2 огноог бусадтай шууд харьцуулах харьцуулах боломжтой. Хэрэв хоёулаа хоёулаа цагийн нэгжээр ижил тоотой бол арга нь тэгийг буцаана. Хэрэв хоёр дахь огноо эхнийхээс бага байвал тэгээс бага утгыг буцаана. Хэрэв хоёр дахь огноо эхнийхээс том бол арга нь тэгээс их утгыг буцаана. Хэрэв огноо хоёулаа ижил байвал арга нь тэг утгыг буцаана.
Алхам 2. Огнооны олон объект үүсгэх
Та харьцуулахаасаа өмнө Огнооны олон объектыг үүсгэх ёстой. Үүнийг хийх хамгийн хялбар аргуудын нэг бол SimpleDateFormat класс ашиглах явдал юм. Энэ анги нь оруулсан огнооны утгыг Date объект болгон хөрвүүлэхэд хялбар болгодог.
SimpleDateFormat sdf = шинэ SimpleDateFormat ("yyyy-MM-dd"). Шинэ '' Объектын огноо '' -д үнэ цэнийг зарлахын тулд огноог бүтээхдээ ижил огнооны форматыг ашиглана уу. Огноо огноо1 = sdf.parse ("1995-02-23"); // огноо1 бол 1995 оны 2-р сарын 23, огноо огноо2 = sdf.parse ("2001-10-31"); // огноо2 бол 2001 оны 10-р сарын 31, огноо огноо3 = sdf.parse ("1995-02-23"); // огноо3 бол 1995 оны 2 -р сарын 23
Алхам 3. Date обьектуудыг харьцуулж үзээрэй
Дараах код нь тохиолдол бүрийн жишээг харуулах болно - бага, тэнцүү, их.
огноо1. харьцуулахTo (огноо2); // огноо1 <огноо2, 0 -ээс бага утгыг буцаана date2.compareTo (date1); // огноо2> огноо1, 0 -ээс их утгыг буцаана1 огноо1.compareTo (огноо3); // огноо1 = огноо3 тул консол дээр 0 гарна
4 -ийн 2 -р арга: Equals, After and Before -ийг ашиглах
Алхам 1. Дараа болон өмнө тэнцүү ашиглана уу
Огноог тэнцүү, дараа, өмнөх аргуудыг ашиглан харьцуулж болно. Хэрэв хоёр огноо цаг хугацааны хувьд ижил утгатай бол equals арга нь үнэнийг буцаана. Дараах жишээ нь жишээн дээр харьцуулсан Date объектыг ашиглах болно.
Алхам 2. Өмнөх аргатай харьцуулна уу
Дараах код нь үнэн, худлыг буцаах жишээг харуулав. Date1 бол огнооноос өмнөх огноо2 бол өмнөх арга нь үнэн буцаана. Үгүй бол өмнөх арга нь худал буцаана.
System.out.print (огноо1. Өмнө (огноо2)); // '' true '' System.out.print (date2.before (date2)) утгыг харуулах; // "false" утгыг буцаана уу
Алхам 3. After аргыг ашиглан харьцуулна уу
Дараах код нь үнэн, худлыг буцаах жишээг харуулав. Хэрэв date2 нь огноо1 -ээс хойшхи огноо бол, after арга нь үнэн утгыг буцаана. Үгүй бол after арга нь худлаа буцаана.
System.out.print (date2.after (date1)); // '' true '' System.out.print (date1.after (date2)) утгыг харуулах; // '' false '' утгыг харуулах
Алхам 4. Equals аргыг харьцуулж үзээрэй
Дараах код нь үнэн, худлыг буцаах жишээг харуулав. Хэрэв огноо хоёулаа тэнцүү бол equals арга үнэнийг буцаана. Үгүй бол equals арга нь худал гэж буцаана.
System.out.print (date1.equals (date3)); // "үнэн" утгыг харуулна System.out.print (date1.equals (огноо2)); // "худал" утгыг харуулна
4 -ийн 3 -р арга: Ангийн хуанли ашиглах
Алхам 1. Ангийн хуанли ашиглана уу
Календарь ангид мөн DateTlass дээр өмнө тайлбарласантай адил ажилладаг, мөнTarabTo, equals, after, before аргууд байдаг. Тиймээс хэрэв огнооны мэдээллийг ангийн хуанлид хадгалдаг бол харьцуулахын тулд огноог задлах шаардлагагүй болно.
Алхам 2. Календарийн жишээ үүсгэнэ үү
Ангиллын хуанли дахь аргуудыг ашиглахын тулд та хуанлийн олон тохиолдлыг үүсгэх ёстой. Аз болоход та өмнө нь үүсгэсэн Date жишээний утгыг ашиглаж болно.
Календар кал1 = Calendar.getInstance (); // зарлах cal1 Календарь cal2 = Calendar.getInstance (); // cal2 календарийг зарлах cal3 = Calendar.getInstance (); // cal3 cal1.setTime (date1) гэж зарлах; // огноог cal1 -д оруулах cal2.setTime (date2); cal3.setTime (огноо3);
Алхам 3. cal1 ба cal2 -ийг өмнөх аргыг ашиглан харьцуулж үзээрэй
Дараах код нь tr -ийн утгыг гаргана
System.out.print (cal1.before (cal2)); // "үнэн" утгыг буцаана
Алхам 4. after1 аргыг ашиглан cal1 ба cal2 -ийг харьцуулж үзээрэй
Cal1 нь cal2 -ээс өмнөх огноо учраас дараах код нь худал буцаана.
System.out.print (cal1.after (cal2)); // "false" утгыг буцаана уу
Алхам 5. Cal1 ба cal2 -ийг тэнцүү аргаар харьцуулж үзээрэй
Дараах код нь үнэн, худлыг буцаах жишээг харуулах болно. Муж нь харьцуулж буй Календарийн тохиолдлоос хамаарна. Дараах код нь "үнэн" гэсэн утгыг буцаана, дараа нь дараагийн мөрөнд "худал" болно.
System.out.println (cal1.equals (cal3)); // '' үнэн '' утгыг буцаана: cal1 == cal3 System.out.print (cal1.equals (cal2)); // '' false '' утгыг буцаана: cal1! = cal2
4 -ийн 4 -р арга: getTime ашиглах
Алхам 1. getTime ашиглана уу
Та мөн хоёр огнооны цагийн нэгжийн утгыг шууд харьцуулж болно, гэхдээ өмнөх хоёр аргыг уншихад хялбар, илүү тохиромжтой байж болох юм. Ингэснээр та 2 үндсэн өгөгдлийн төрлийг харьцуулж үзэх болно, ингэснээр та "", "==" операндуудыг ашиглаж болно.
Алхам 2. Урт тооны форматаар цагийн объект үүсгэх
Огноог харьцуулахаас өмнө та өмнө нь үүсгэсэн Date объектоос Long Integer утгыг үүсгэх ёстой. Аз болоход getTime () арга нь танд үүнийг хийх болно.
урт хугацаа1 = getTime (огноо1); // огнооны цагийг тунхаглах1 урт хугацаа2 = getTime (огноо2); // огноо2 -ийн энгийн цаг2 утгыг зарлах
Алхам 3. Харьцуулалтаас доогуур гүйцэтгэнэ
Эдгээр хоёр бүхэл утгыг харьцуулахын тулд (<) -ээс бага операнд ашиглана уу. Цаг1 нь цаг2 -оос бага байгаа тул эхний мессеж гарч ирнэ. Else хэллэгийг синтаксийг гүйцээхийн тулд оруулсан болно.
if (time1 <time2) {System.out.println ("date1 бол огнооноос өмнөх огноо"); // харуулах болно, учир нь time1 <time2} else {System.out.println ("date1 бол огнооноос өмнөх огноо биш"); }
Алхам 4. Харьцуулалтаас илүү сайн гүйцэтгээрэй
Эдгээр хоёр бүхэл утгыг харьцуулахын тулд (>) -ээс их операнд ашиглана уу. Time1 нь time2 -оос их байгаа тул эхний зурвас гарч ирнэ. Else хэллэгийг синтаксийг гүйцээхийн тулд оруулсан болно.
if (time2> time1) {System.out.println ("date2 бол огнооноос хойшхи огноо"); // харуулах болно, учир нь time2> time1} else {System.out.println ("date2 бол огнооноос хойшхи огноо биш"); }
Алхам 5. Тэнцүү харьцуулалтыг хий
Эдгээр хоёр бүхэл тоог харьцуулахын тулд утгуудын тэгш байдлыг шалгахын тулд операнд функцийг ашиглана уу (==). Time1 нь time3 -тэй тэнцүү тул эхний мессеж гарч ирнэ. Хэрэв програмын урсгал өөр мэдэгдэлд орвол энэ нь хоёр удаа ижил утгатай байдаггүй гэсэн үг юм.
if (time1 == time2) {System.out.println ("хоёулаа огноо адилхан"); } else {System.out.println ("1 -р нь 2 -той адилгүй"); // цаг 1! = цаг2} учир харуулах болно