Java -де екі күнді салыстырудың 4 әдісі

Мазмұны:

Java -де екі күнді салыстырудың 4 әдісі
Java -де екі күнді салыстырудың 4 әдісі

Бейне: Java -де екі күнді салыстырудың 4 әдісі

Бейне: Java -де екі күнді салыстырудың 4 әдісі
Бейне: OpenSCAD - импорт 2024, Сәуір
Anonim

Java күндерін салыстырудың әртүрлі әдістері бар. Ішінде күн уақыттың (ұзақ) нүктесі ретінде көрсетіледі - 1970 жылдың 1 қаңтарынан бастап өткен миллисекундтардың саны. Java -де Date - бұл объект, ол салыстырудың бірнеше әдістерін қамтиды. Екі күнді салыстырудың кез келген әдісі күндердің уақытын салыстырады.

Қадамдар

4 -ші әдіс 1: comparTo қолдану

4301351 1
4301351 1

Қадам 1. CompareTo пайдаланыңыз

Date Comparable функциясын қолданады, сондықтан екі күнді салыстыру әдісімен тікелей салыстыруға болады. Егер күндер дәл сол уақытқа сәйкес келсе, әдіс нөлді қайтарады. Егер салыстырылатын күн күн аргументінен бұрын болса, нөлден кіші мән қайтарылады. Егер салыстырылатын күн күн аргументінен кейін болса, нөлден үлкен мән қайтарылады. Егер күндер тең болса, 0 мәні қайтарылады.

4301351 2
4301351 2

2 -қадам. Күн нысандарын жасаңыз

Салыстыруды бастамас бұрын әрбір күн нысанын жасау керек. Мұны істеудің бір әдісі - SimpleDateFormat класын пайдалану. Бұл күн мәндеріне күн объектілеріне оңай енгізуге мүмкіндік береді.

    SimpleDateFormat sdf = жаңа SimpleDateFormat («yyyy-MM-dd»); // Жаңа күн нысандарында мәндерді жариялау үшін. күндерді жасау кезінде сол күн пішімін қолданыңыз Date date1 = sdf.parse («1995-02-23»); // дата1-1995 ж. 23 ақпан Күні күні2 = sdf.parse («2001-10-31»); // дата2-2001 жылғы 31 қазан Күні күні3 = sdf.parse («1995-02-23»); // дата3 - 23 ақпан 1995 ж

4301351 3
4301351 3

3 -қадам. Күн нысандарын салыстырыңыз

Төмендегі код сізге әр жағдайды көрсетеді - кіші, тең және үлкен.

    date1.compareTo (дата2); // дата1 <дата2, 0 -ден аз күнді қайтарады2.compareTo (дата1); // дата2> дата1, 0 -ден үлкен қайтарады1 date1.compareTo (дата3); // date1 = date3, сондықтан консольге 0 басып шығарылады

2 -ші әдіс 4: теңдерді қолдану, кейін және бұрын

4301351 4
4301351 4

1 -қадам. Теңдерді қолданыңыз, кейін және бұрын

Күндерді әдістермен теңестіруге болады, әдістерден кейін және бұрын. Егер екі күн бір уақытқа сәйкес келсе, equals әдісі шындыққа оралады. Мысалдар салыстыру әдісінен бұрын жасалған күндерді қолданады.

4301351 5
4301351 5

Қадам 2. Алдыңғы әдісті қолданып салыстырыңыз

Төмендегі код шын және жалған жағдайды көрсетеді. Егер date1 күні 2 -ге дейін болса, алдында true мәні қайтарылады. Егер олай болмаса, бұрын жалған қайтарады.

    System.out.print (date1.before (date2)); // шынайы System.out.print (date2.before (date2)) басып шығарады; // жалған басып шығарады

4301351 6
4301351 6

Қадам 3. After әдісін қолданып салыстырыңыз

Төмендегі код шын және жалған жағдайды көрсетеді. Егер date2 күні1 -ден кейін болса, кейін true мәні қайтарылады. Егер олай болмаса, жалған қайтарғаннан кейін.

    System.out.print (date2.after (date1)); // true шығарады System.out.print (date1.after (date2)); // жалған басып шығарады

4301351 7
4301351 7

4 -қадам. Equals әдісін қолданып салыстырыңыз

Төмендегі код шын және жалған жағдайды көрсетеді. Егер күндер тең болса, equals ақиқатты қайтарады. Егер олар болмаса, equals жалған қайтарады.

    System.out.print (date1.equals (date3)); // true шығарады System.out.print (date1.equals (date2)); // жалған басып шығарады

3 -ші әдіс 4: Күнтізбе класын пайдалану

4301351 8
4301351 8

Қадам 1. Күнтізбені пайдаланыңыз

Күнтізбе класы, сонымен қатар, күндер класы үшін жоғарыда сипатталғандай жұмыс істейтін, салыстыру әдістерінен кейін де, бұрын да бар. Егер күн туралы ақпарат күнтізбеде сақталса, салыстыру үшін күнді шығарудың қажеті жоқ.

4301351 9
4301351 9

Қадам 2. Күнтізбе даналарын жасаңыз

Күнтізбе әдістерін қолдану үшін сізге бірнеше Күнтізбе данасы қажет болады. Бақытымызға орай, сіз қазірдің өзінде құрылған Date даналарынан уақытты ала аласыз.

    Күнтізбе cal1 = Calendar.getInstance (); // жариялайды cal1 Күнтізбе cal2 = Calendar.getInstance (); // жариялайды cal2 Күнтізбе cal3 = Calendar.getInstance (); // cal3 cal1.setTime (date1) жариялайды; // күнді cal1 үшін cal2.setTime (date2) қолданады; cal3.setTime (date3);

4301351 10
4301351 10

3 -қадам. Cal1 мен cal2 -ді бұрын қолдану арқылы салыстырыңыз

Cal1 cal2 алдында болғандықтан, төмендегі код ақиқатты басып шығаруы керек.

    System.out.print (cal1.before (cal2)); // ақиқатты басып шығарады

4301351 11
4301351 11

Қадам 4. cal1 мен cal2 -ді after арқылы салыстырыңыз

Төмендегі код жалған болып шығуы керек, себебі cal1 cal2 алдында.

    System.out.print (cal1.after (cal2)); // жалған басып шығарады

4301351 12
4301351 12

5 -қадам. Cal1 мен cal2 -ді теңдеу арқылы салыстырыңыз

Төмендегі код шын және жалған жағдайдың мысалын көрсетеді. Шарт салыстырылатын күнтізбе даналарына байланысты. Код келесі жолда «шын», содан кейін «жалған» деп басып шығаруы керек.

    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 қарабайыр уақытты жариялайды

4301351 15
4301351 15

Қадам 3. Салыстырудан гөрі аз жасаңыз

Осы екі бүтін мәнді салыстыру үшін кіші таңбаны (<) пайдаланыңыз. Уақыт1 уақыт 2 -ден аз болғандықтан, бірінші хабарлама басып шығарылуы керек. Else операторы дұрыс синтаксис үшін енгізілген.

    if (time1 <time2) {System.out.println («date1 - date2 дейін»); // уақыттан бастап басып шығарылады <уақыт2} басқа {System.out.println («date1 дата2 дейін емес»); }

4301351 16
4301351 16

Қадам 4. Салыстырудан гөрі көп нәрсені жасаңыз

Осы екі бүтін мәнді салыстыру үшін үлкеннен үлкен белгісін (>) пайдаланыңыз. Уақыт1 2 -ші уақыттан үлкен болғандықтан, бірінші хабарды басып шығару керек. Else операторы дұрыс синтаксис үшін енгізілген.

    if (time2> time1) {System.out.println («дата2 - датадан 1»); // time2> time1} else {System.out.println («date2 - датадан 1 емес») бастап басып шығарылады); }

4301351 17
4301351 17

5 -қадам. Салыстырмалы түрде салыстырыңыз

Бұл екі бүтін мәнді теңдікке салыстыру үшін теңдікті тексеру үшін таңбаны пайдаланыңыз (==). Уақыт1 уақыт3 -ке тең болғандықтан, бірінші хабарлама басып шығарылуы керек. Егер бағдарлама else операторына келсе, бұл уақыт тең емес дегенді білдіреді.

    if (time1 == time2) {System.out.println («күндер тең»); } else {System.out.println («күндер тең емес»); // 1 -ші уақыттан бастап басып шығарылады! = уақыт2}

Ұсынылған: