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

Мазмуну:

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

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

Video: Javaда эки күндү салыштыруунун 4 жолу
Video: Equipment Corner - Gcodes and Slic3r basics 2024, Март
Anonim

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

Кадамдар

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

4301351 1
4301351 1

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

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

4301351 2
4301351 2

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

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

    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 date1.compareTo (дата3); // дата1 = дата3, андыктан консолго 0 басылат

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

4301351 4
4301351 4

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

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

4301351 5
4301351 5

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

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

    System.out.print (date1.before (date2)); // чыныгы System.out.print (date2.before (date2)) басып чыгарат; // жалган басып чыгарат

4301351 6
4301351 6

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

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

    System.out.print (date2.after (дата1)); // чыныгы System.out.print басып чыгарат (дата1.чейин (дата2)); // жалганды басып чыгарат

4301351 7
4301351 7

4 -кадам. Equals ыкмасын колдонуп салыштырыңыз

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

    System.out.print (date1.equals (дата3)); // чындыкты басып чыгарат System.out.print (date1.equals (дата2));

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

4301351 8
4301351 8

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

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

4301351 9
4301351 9

Кадам 2. Календарь инстанцияларын түзүңүз

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

    Календар cal1 = 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ди мурун колдонуп салыштырыңыз

Cal1 cal2ге чейин болгондуктан, төмөнкү код чындыкты басып чыгарышы керек.

    System.out.print (cal1.before (cal2)); // чындыкты басып чыгарат

4301351 11
4301351 11

Кадам 4. cal1 менен cal2ди кийин колдонуп салыштырыңыз

Төмөнкү код калпты басып чыгарышы керек, анткени cal1 cal2ден мурун.

    System.out.print (cal1.after (cal2)); // жалган басып чыгарат

4301351 12
4301351 12

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

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

    System.out.println (cal1.equals (cal3)); // чындыкты чыгарат: cal1 == cal3 System.out.print (cal1.equals (cal2)); // жалган басып чыгарат: cal1! = cal2

Метод 4 4: getTime колдонуу

4301351 13
4301351 13

Кадам 1. GetTime колдонуңуз

Ошондой эле, эки датанын убактысын түз салыштырууга болот, бирок мурунку ыкмалардын кайсынысы көбүрөөк окулушу мүмкүн жана артыкчылыктуу. Бул эки примитивдүү маалыматтын салыштыруусу болот, андыктан аны "" жана "==" менен жасаса болот.

4301351 14
4301351 14

Кадам 2. Узак убакытка созулган объекттерди түзүү

Күндөрдү салыштыруудан мурун, мурда түзүлгөн Date объекттеринин маалыматтары менен узун бүтүн сандарды түзүшүңүз керек. Бактыга жараша, getTime () методу сиз үчүн иштин көбүн аткарат.

    узак убакыт1 = getTime (дата1); // баштапкы убакытты жарыя кылат1 датадан1 узак убакыт2 = getTime (дата2); // датадан2 баштапкы убакытты2 жарыялайт

4301351 15
4301351 15

Кадам 3. Салыштырмадан азыраак кылыңыз

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

    if (time1 <time2) {System.out.println ("date1 is date2 чейин"); // убакыттан бери басып чыгарылат <убакыт2} башка {System.out.println ("дата1 дата2ге чейин эмес"); }

4301351 16
4301351 16

4 -кадам. Салыштыруудан да чоңураак нерсени жасаңыз

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

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

4301351 17
4301351 17

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

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

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

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