Javaда эки күндү салыштыруунун 4 жолу

Мазмуну:

Javaда эки күндү салыштыруунун 4 жолу
Javaда эки күндү салыштыруунун 4 жолу

Video: Javaда эки күндү салыштыруунун 4 жолу

Video: Javaда эки күндү салыштыруунун 4 жолу
Video: Автоматический календарь-планировщик смен в Excel 2024, Май
Anonim

Java программалоо тилинде эки датаны салыштыруунун көптөгөн жолдору бар. Компьютерлерде дата убакыттын бирдиги менен сан менен (Узун маалымат түрү), башкача айтканда, 1970 -жылдын 1 -январынан бери өткөн миллисекунддардын саны менен көрсөтүлөт. Javaда Дата - бул объект, бул анын салыштыруу үчүн бир нече ыкмалар. Эки датаны салыштыруу үчүн колдонулган ар кандай ыкма, негизинен, эки датанын убакыт бирдигин салыштыруу болуп саналат.

Кадам

Метод 1: 4 салыштыруу аркылуу

4301351 1
4301351 1

Кадам 1. UseTo салыштыруу

Date объектиси Comparable программасын ишке ашырат, андыктан 2 дата бири -бири менен түздөн -түз салыштыруу методу менен салыштырылат. Эгерде эки дата тең убакыт бирдигинде бирдей болсо, анда бул ыкма нөлдү кайтарат. Экинчи күн биринчи күндөн азыраак болсо, нөлдөн кичине мааниси кайтарылат. Экинчи дата биринчиден чоң болсо, ыкма нөлдөн чоң маанини кайтарат. Эгерде эки дата бирдей болсо, анда ыкма нөлдүк маанини кайтарат.

4301351 2
4301351 2

Кадам 2. Бир нече Date объектилерин түзүү

Сиз аларды салыштыруудан мурун бир нече Date объектилерин түзүшүңүз керек. Мунун эң оңой жолдорунун бири - SimpleDateFormat классын колдонуу. Бул класс киргизүү датасынын датасын Date объектине айландырууну жеңилдетет.

    SimpleDateFormat sdf = жаңы SimpleDateFormat ("yyyy-MM-dd"). Жаңы '' Объект Күнүндө '' маанини жарыялоо үчүн, датаны түзүүдө ошол эле форматты колдонуңуз. Date date1 = sdf.parse ("1995-02-23"); // дата1-23-февраль, 1995-жыл Date Date2 = sdf.parse ("2001-10-31"); // дата2-2001-жылдын 31-октябры, Date Date3 = sdf.parse ("1995-02-23"); // дата3 - 23 -февраль, 1995 -жыл

4301351 3
4301351 3

Кадам 3. Дата объектилерин салыштырыңыз

Төмөнкү код сизге ар бир учур үчүн мисалдарды көрсөтөт - азыраак, барабар жана чоң.

    дата1.compareTo (дата2); // дата1 <дата2, 0 дата2.compareTo (дата1) азыраак маанини кайтарат; // дата2> дата1, 0 датадан чоң маанини кайтарат1.compareTo (дата3); // дата1 = дата3, андыктан консолго 0 чыгат

Метод 2ден 4: Барабарды колдонуу, Кийин жана Мурун

4301351 4
4301351 4

Кадам 1. Барактарды колдонуңуз, кийин жана чейин

Күндөрдү барабар, кийин жана мурунку ыкмалар менен салыштырууга болот. Эгерде эки датанын убактысы бирдей болсо, equals ыкмасы чындыкты кайтарат. Төмөнкү мисал салыштыруу методунда түзүлгөн Date объектисин колдонот.

4301351 5
4301351 5

Кадам 2. мурунку ыкма менен салыштырыңыз

Төмөнкү код чындыкты жана жалганды кайтаруучу мисалды көрсөтөт. Эгерде дата1 дата2ге чейинки күн болсо, мурунку ыкма чындыкты кайтарат. Болбосо, мурунку метод жалганды кайтарат.

    System.out.print (date1.before (date2)); // '' true '' System.out.print (date2.before (date2)) маанисин көрсөтүү; // "false" маанисин кайтаруу

4301351 6
4301351 6

Кадам 3. After ыкмасын колдонуп салыштырыңыз

Төмөнкү код чындыкты жана жалганды кайтаруучу мисалды көрсөтөт. Эгерде дата2 датадан кийинки күн болсо, кийинки ыкма чындыкты кайтарат. Болбосо, кийинки ыкма жалган кайтып келет.

    System.out.print (date2.after (date1)); // "'' чыныгы '' 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 (date2)) маанисин көрсөтүү; //" 'false' 'маанисин көрсөтүү

Метод 3 3: Класс Календарын колдонуу

4301351 8
4301351 8

Кадам 1. Класс Календарын колдонуңуз

Календарь классында Дата классы үчүн мурда сүрөттөлгөн методдор менен бирдей иштеген методдор бар: Ошентип, эгерде дата жөнүндө маалымат Класс календарында сакталса, анда салыштыруу үчүн күндү чыгаруунун кажети жок.

4301351 9
4301351 9

Кадам 2. Календардын экземплярын түзүңүз

Класс Жылнаамасында ыкмаларды колдонуу үчүн, сиз бир нече Календар инстанциясын түзүшүңүз керек. Бактыга жараша, сиз баалуулуктарды мурда түзүлгөн Дата экземплярынан колдоно аласыз.

    Календар кал1 = Calendar.getInstance (); // жарыялоо cal1 Календар cal2 = Calendar.getInstance (); // жарыялоо cal2 Календар cal3 = Calendar.getInstance (); // cal3 жарыялоо cal1.setTime (дата1); // күндү cal1ге коюу cal2.setTime (дата2); cal3.setTime (дата3);

4301351 10
4301351 10

3 -кадам. Cal1 менен cal2ди мурунку ыкманы колдонуу менен салыштырыңыз

Төмөнкү код tr маанисин чыгарат

    System.out.print (cal1.before (cal2)); // "чыныгы" маанисин кайтарат

4301351 11
4301351 11

Step 4. cal1 жана cal2 after ыкмасын колдонуп салыштырыңыз

Төмөнкү код жалган кайтарат, анткени cal1 - cal2ге чейинки күн.

    System.out.print (cal1.after (cal2)); // "false" маанисин кайтаруу

4301351 12
4301351 12

5 -кадам. Cal1 менен cal2ди барабар ыкмасын колдонуп салыштырыңыз

Төмөнкү код чыныгы жана жалганды кайтаруучу мисал көрсөтөт. Штат салыштырылып жаткан Календар үлгүсүнө көз каранды. Төмөнкү код кийинки сапта "true", андан кийин "false" маанисин кайтарат.

    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 ("дата1 - датадан мурунку күн"); // көрсөтөт, анткени time1 <time2} else {System.out.println ("дата1 датадан мурунку күн эмес"); }

4301351 16
4301351 16

Кадам 4. Салыштырмадан чоңураак аткарыңыз

Бул эки бүтүн санды салыштыруу үчүн (>) чоң операндды колдонуңуз. Убакыт1 убакыт2ден чоң болгондуктан, биринчи билдирүү пайда болот. Else оператору синтаксисти бүтүрүү үчүн камтылган.

    if (time2> time1) {System.out.println ("дата2 - датадан кийинки күн"); // көрсөтөт, анткени убакыт2> убакыт1} башка {System.out.println ("дата2 датадан кийинки күн эмес"); }

4301351 17
4301351 17

5 -кадам. Барабар салыштырууну аткарыңыз

Бул эки бүтүн сандарды салыштыруу үчүн баалуулуктардын теңдигин текшерүү үчүн операнд функциясын колдонуңуз (==). Убакыт1 убакыт3кө барабар болгондуктан, биринчи билдирүү пайда болот. Эгерде программанын агымы else билдирүүсүнө кирсе, бул эки убакыттын бирдей мааниге ээ эместигин билдирет.

    if (time1 == time2) {System.out.println ("эки дата тең"); } else {System.out.println ("1чи экинчиси менен бирдей эмес"); // көрсөтөт, анткени убакыт1! = убакыт2}

Сунушталууда: