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

Мазмұны:

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

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

Бейне: Java -де екі күнді салыстырудың 4 әдісі
Бейне: Қалай адамдарды баурап алуға болады / Sana ortalygy 2024, Мамыр
Anonim

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

Қадам

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

4301351 1
4301351 1

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

Date нысаны Comparable бағдарламасын жүзеге асырады, сондықтан 2 күнді салыстыру әдісімен тікелей салыстыруға болады. Егер екі күнде уақыт бірліктерінде бірдей сан болса, онда әдіс нөлді қайтарады. Егер екінші күн біріншіден аз болса, нөлден кіші мән қайтарылады. Егер екінші күн біріншіден үлкен болса, әдіс нөлден үлкен мәнді қайтарады. Егер екі күн бірдей болса, онда әдіс нөлдік мәнді қайтарады.

4301351 2
4301351 2

Қадам 2. Бірнеше Date нысандарын жасаңыз

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

    SimpleDateFormat sdf = жаңа SimpleDateFormat («yyyy-MM-dd»). Мәнді жаңа '' Объект Күнінде '' жариялау үшін, күнді жасау кезінде сол күн пішімін қолданыңыз. Күні күні1 = 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. Date нысандарын салыстырыңыз

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

    date1.compareTo (дата2); // date1 <date2, 0 date2.compareTo (date1) мәнінен кіші мәнді қайтарады; // date2> date1, 0 date1.compareTo (date3) мәнінен үлкен мәнді қайтарады; // date1 = date3, сондықтан ол консольде 0 шығарады

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

4301351 4
4301351 4

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

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

4301351 5
4301351 5

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

Келесі код шын және жалған мәнді қайтаратын мысалды көрсетеді. Егер date1 күні 2 -ге дейінгі күн болса, алдыңғы әдіс шын мәнін қайтарады. Әйтпесе, алдыңғы әдіс false қайтарады.

    System.out.print (date1.before (date2)); // '' true '' System.out.print (date2.before (date2)) мәнін көрсету; // «жалған» мәнін қайтару

4301351 6
4301351 6

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

Келесі код шын және жалған мәнді қайтаратын мысалды көрсетеді. Егер date2 - date1 күннен кейінгі күн болса, after әдісі true мәнін қайтарады. Әйтпесе, after әдісі false қайтарады.

    System.out.print (date2.after (date1)); // «true» мәнін көрсету System.out.print (date1.after (date2)); // «false» мәнін көрсету

4301351 7
4301351 7

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

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

    System.out.print (date1.equals (date3)); // '' true '' System.out.print (date1.equals (date2)) мәнін көрсету; // '' false '' мәнін көрсету

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

4301351 8
4301351 8

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

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

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 -ді алдыңғы әдісті қолданып салыстырыңыз

Келесі код tr мәнін шығарады

    System.out.print (cal1.before (cal2)); // «true» мәнін қайтарады

4301351 11
4301351 11

4 -қадам. Cal1 мен cal2 -ді after әдісін қолданып салыстырыңыз

Келесі код жалған мәнді қайтарады, себебі cal1 - cal2 алдындағы күн.

    System.out.print (cal1.after (cal2)); // «жалған» мәнін қайтару

4301351 12
4301351 12

5 -қадам. Cal1 мен cal2 -ді equals әдісін қолданып салыстырыңыз

Келесі код шын және жалған мәнді қайтаратын мысал жағдайын көрсетеді. Күй салыстырылатын Күнтізбе данасына байланысты. Келесі код келесі жолда «ақиқат» мәнін қайтарады.

    System.out.println (cal1.equals (cal3)); // '' true '' мәнін қайтарыңыз: 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 -дің қарабайыр уақытын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 («date1 - датадан 2 күн бұрын емес»); }

4301351 16
4301351 16

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

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

    if (time2> time1) {System.out.println («дата2 - күннен кейінгі күн»); // көрсетеді, себебі time2> time1} else {System.out.println («date2 - күннен кейінгі күн емес»); }

4301351 17
4301351 17

5 -қадам. Тең салыстыруды орындаңыз

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

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

Ұсынылған: