Java дээрх хоёр огноог харьцуулах 4 арга

Агуулгын хүснэгт:

Java дээрх хоёр огноог харьцуулах 4 арга
Java дээрх хоёр огноог харьцуулах 4 арга

Видео: Java дээрх хоёр огноог харьцуулах 4 арга

Видео: Java дээрх хоёр огноог харьцуулах 4 арга
Видео: JAVA анхан шатыг 1 цаг 30 минутад 2024, Арваннэгдүгээр
Anonim

Java програмчлалын хэл дээр хоёр огноог харьцуулах олон арга бий. Компьютерт огноог 1970 -аад оны 1 -р сарын 1 -ээс хойш өнгөрсөн миллисекундын тоо, цаг хугацааны нэгжээр илэрхийлдэг. харьцуулалт хийх хэд хэдэн арга. Хоёр огноог харьцуулах аливаа арга нь үндсэндээ хоёр огнооны цагийн нэгжийг харьцуулах явдал юм.

Алхам

4 -ийн 1 -р арга: харьцуулалтыг ашиглах

4301351 1
4301351 1

Алхам 1. CompareTo ашиглана уу

Date обьект нь Comparable -ийг хэрэгжүүлдэг тул 2 огноог бусадтай шууд харьцуулах харьцуулах боломжтой. Хэрэв хоёулаа хоёулаа цагийн нэгжээр ижил тоотой бол арга нь тэгийг буцаана. Хэрэв хоёр дахь огноо эхнийхээс бага байвал тэгээс бага утгыг буцаана. Хэрэв хоёр дахь огноо эхнийхээс том бол арга нь тэгээс их утгыг буцаана. Хэрэв огноо хоёулаа ижил байвал арга нь тэг утгыг буцаана.

4301351 2
4301351 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

4301351 3
4301351 3

Алхам 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 -ийг ашиглах

4301351 4
4301351 4

Алхам 1. Дараа болон өмнө тэнцүү ашиглана уу

Огноог тэнцүү, дараа, өмнөх аргуудыг ашиглан харьцуулж болно. Хэрэв хоёр огноо цаг хугацааны хувьд ижил утгатай бол equals арга нь үнэнийг буцаана. Дараах жишээ нь жишээн дээр харьцуулсан Date объектыг ашиглах болно.

4301351 5
4301351 5

Алхам 2. Өмнөх аргатай харьцуулна уу

Дараах код нь үнэн, худлыг буцаах жишээг харуулав. Date1 бол огнооноос өмнөх огноо2 бол өмнөх арга нь үнэн буцаана. Үгүй бол өмнөх арга нь худал буцаана.

    System.out.print (огноо1. Өмнө (огноо2)); // '' true '' System.out.print (date2.before (date2)) утгыг харуулах; // "false" утгыг буцаана уу

4301351 6
4301351 6

Алхам 3. After аргыг ашиглан харьцуулна уу

Дараах код нь үнэн, худлыг буцаах жишээг харуулав. Хэрэв date2 нь огноо1 -ээс хойшхи огноо бол, after арга нь үнэн утгыг буцаана. Үгүй бол after арга нь худлаа буцаана.

    System.out.print (date2.after (date1)); // '' true '' System.out.print (date1.after (date2)) утгыг харуулах; // '' false '' утгыг харуулах

4301351 7
4301351 7

Алхам 4. Equals аргыг харьцуулж үзээрэй

Дараах код нь үнэн, худлыг буцаах жишээг харуулав. Хэрэв огноо хоёулаа тэнцүү бол equals арга үнэнийг буцаана. Үгүй бол equals арга нь худал гэж буцаана.

    System.out.print (date1.equals (date3)); // "үнэн" утгыг харуулна System.out.print (date1.equals (огноо2)); // "худал" утгыг харуулна

4 -ийн 3 -р арга: Ангийн хуанли ашиглах

4301351 8
4301351 8

Алхам 1. Ангийн хуанли ашиглана уу

Календарь ангид мөн DateTlass дээр өмнө тайлбарласантай адил ажилладаг, мөнTarabTo, equals, after, before аргууд байдаг. Тиймээс хэрэв огнооны мэдээллийг ангийн хуанлид хадгалдаг бол харьцуулахын тулд огноог задлах шаардлагагүй болно.

4301351 9
4301351 9

Алхам 2. Календарийн жишээ үүсгэнэ үү

Ангиллын хуанли дахь аргуудыг ашиглахын тулд та хуанлийн олон тохиолдлыг үүсгэх ёстой. Аз болоход та өмнө нь үүсгэсэн Date жишээний утгыг ашиглаж болно.

    Календар кал1 = Calendar.getInstance (); // зарлах cal1 Календарь cal2 = Calendar.getInstance (); // cal2 календарийг зарлах cal3 = Calendar.getInstance (); // cal3 cal1.setTime (date1) гэж зарлах; // огноог cal1 -д оруулах cal2.setTime (date2); cal3.setTime (огноо3);

4301351 10
4301351 10

Алхам 3. cal1 ба cal2 -ийг өмнөх аргыг ашиглан харьцуулж үзээрэй

Дараах код нь tr -ийн утгыг гаргана

    System.out.print (cal1.before (cal2)); // "үнэн" утгыг буцаана

4301351 11
4301351 11

Алхам 4. after1 аргыг ашиглан cal1 ба cal2 -ийг харьцуулж үзээрэй

Cal1 нь cal2 -ээс өмнөх огноо учраас дараах код нь худал буцаана.

    System.out.print (cal1.after (cal2)); // "false" утгыг буцаана уу

4301351 12
4301351 12

Алхам 5. Cal1 ба cal2 -ийг тэнцүү аргаар харьцуулж үзээрэй

Дараах код нь үнэн, худлыг буцаах жишээг харуулах болно. Муж нь харьцуулж буй Календарийн тохиолдлоос хамаарна. Дараах код нь "үнэн" гэсэн утгыг буцаана, дараа нь дараагийн мөрөнд "худал" болно.

    System.out.println (cal1.equals (cal3)); // '' үнэн '' утгыг буцаана: cal1 == cal3 System.out.print (cal1.equals (cal2)); // '' false '' утгыг буцаана: cal1! = cal2

4 -ийн 4 -р арга: getTime ашиглах

4301351 13
4301351 13

Алхам 1. getTime ашиглана уу

Та мөн хоёр огнооны цагийн нэгжийн утгыг шууд харьцуулж болно, гэхдээ өмнөх хоёр аргыг уншихад хялбар, илүү тохиромжтой байж болох юм. Ингэснээр та 2 үндсэн өгөгдлийн төрлийг харьцуулж үзэх болно, ингэснээр та "", "==" операндуудыг ашиглаж болно.

4301351 14
4301351 14

Алхам 2. Урт тооны форматаар цагийн объект үүсгэх

Огноог харьцуулахаас өмнө та өмнө нь үүсгэсэн Date объектоос Long Integer утгыг үүсгэх ёстой. Аз болоход getTime () арга нь танд үүнийг хийх болно.

    урт хугацаа1 = getTime (огноо1); // огнооны цагийг тунхаглах1 урт хугацаа2 = getTime (огноо2); // огноо2 -ийн энгийн цаг2 утгыг зарлах

4301351 15
4301351 15

Алхам 3. Харьцуулалтаас доогуур гүйцэтгэнэ

Эдгээр хоёр бүхэл утгыг харьцуулахын тулд (<) -ээс бага операнд ашиглана уу. Цаг1 нь цаг2 -оос бага байгаа тул эхний мессеж гарч ирнэ. Else хэллэгийг синтаксийг гүйцээхийн тулд оруулсан болно.

    if (time1 <time2) {System.out.println ("date1 бол огнооноос өмнөх огноо"); // харуулах болно, учир нь time1 <time2} else {System.out.println ("date1 бол огнооноос өмнөх огноо биш"); }

4301351 16
4301351 16

Алхам 4. Харьцуулалтаас илүү сайн гүйцэтгээрэй

Эдгээр хоёр бүхэл утгыг харьцуулахын тулд (>) -ээс их операнд ашиглана уу. Time1 нь time2 -оос их байгаа тул эхний зурвас гарч ирнэ. Else хэллэгийг синтаксийг гүйцээхийн тулд оруулсан болно.

    if (time2> time1) {System.out.println ("date2 бол огнооноос хойшхи огноо"); // харуулах болно, учир нь time2> time1} else {System.out.println ("date2 бол огнооноос хойшхи огноо биш"); }

4301351 17
4301351 17

Алхам 5. Тэнцүү харьцуулалтыг хий

Эдгээр хоёр бүхэл тоог харьцуулахын тулд утгуудын тэгш байдлыг шалгахын тулд операнд функцийг ашиглана уу (==). Time1 нь time3 -тэй тэнцүү тул эхний мессеж гарч ирнэ. Хэрэв програмын урсгал өөр мэдэгдэлд орвол энэ нь хоёр удаа ижил утгатай байдаггүй гэсэн үг юм.

    if (time1 == time2) {System.out.println ("хоёулаа огноо адилхан"); } else {System.out.println ("1 -р нь 2 -той адилгүй"); // цаг 1! = цаг2} учир харуулах болно

Зөвлөмж болгож буй: