Java бағдарламалау тілінде екі күнді салыстырудың көптеген әдістері бар. Компьютерлерде күн уақыт бірлігінде санмен (деректер түрі Ұзын), яғни 1970 жылдың 1 қаңтарынан бастап өткен миллисекундтар санымен бейнеленеді. Java тілінде Date - бұл объект, яғни ол салыстырудың бірнеше әдістері. Екі күнді салыстыру үшін қолданылатын кез келген әдіс екі датаның уақыт бірліктерін салыстырады.
Қадам
4 -ші әдіс 1: comparTo қолдану
Қадам 1. CompareTo пайдаланыңыз
Date нысаны Comparable бағдарламасын жүзеге асырады, сондықтан 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 ж
Қадам 3. Date нысандарын салыстырыңыз
Келесі код сізге әр жағдайда мысалдарды көрсетеді - кіші, тең және үлкен.
date1.compareTo (дата2); // date1 <date2, 0 date2.compareTo (date1) мәнінен кіші мәнді қайтарады; // date2> date1, 0 date1.compareTo (date3) мәнінен үлкен мәнді қайтарады; // date1 = date3, сондықтан ол консольде 0 шығарады
2 -ші әдіс 4: теңдерді қолдану, кейін және бұрын
1 -қадам. Теңдерді қолданыңыз, кейін және бұрын
Күндерді тең, кейін және бұрын әдістерімен салыстыруға болады. Егер уақыт бойынша екі күннің мәні бірдей болса, equals әдісі true мәнін қайтарады. Келесі мысалда салыстыру әдісінің мысалында жасалған Date нысаны қолданылады.
Қадам 2. Алдыңғы әдіспен салыстырыңыз
Келесі код шын және жалған мәнді қайтаратын мысалды көрсетеді. Егер date1 күні 2 -ге дейінгі күн болса, алдыңғы әдіс шын мәнін қайтарады. Әйтпесе, алдыңғы әдіс false қайтарады.
System.out.print (date1.before (date2)); // '' true '' System.out.print (date2.before (date2)) мәнін көрсету; // «жалған» мәнін қайтару
Қадам 3. After әдісін қолданып салыстырыңыз
Келесі код шын және жалған мәнді қайтаратын мысалды көрсетеді. Егер date2 - date1 күннен кейінгі күн болса, after әдісі true мәнін қайтарады. Әйтпесе, after әдісі false қайтарады.
System.out.print (date2.after (date1)); // «true» мәнін көрсету System.out.print (date1.after (date2)); // «false» мәнін көрсету
4 -қадам. Equals әдісімен салыстырыңыз
Келесі код шын және жалған мәнді қайтаратын мысал жағдайын көрсетеді. Егер екі күн тең болса, equals әдісі ақиқатты қайтарады. Әйтпесе, equals әдісі false қайтарады.
System.out.print (date1.equals (date3)); // '' true '' System.out.print (date1.equals (date2)) мәнін көрсету; // '' false '' мәнін көрсету
3 -ші әдіс 4: сынып күнтізбесін пайдалану
Қадам 1. Сынып күнтізбесін пайдаланыңыз
Күнтізбе сыныбында, бұрын Date класы үшін сипатталғандармен бірдей жұмыс істейтін, салыстыру, теңестіру, кейін және алдында әдістері бар. Егер күн туралы ақпарат сынып күнтізбесінде сақталса, салыстыру үшін күнді шығарып алудың қажеті жоқ.
Қадам 2. Күнтізбе данасын жасаңыз
Сынып күнтізбесінде әдістерді қолдану үшін бірнеше күнтізбе даналарын жасау қажет. Бақытымызға орай, сіз бұрын жасалған Date данасының мәндерін пайдалана аласыз.
Күнтізбе cal1 = Calendar.getInstance (); // жариялау cal1 Күнтізбе cal2 = Calendar.getInstance (); // жариялау cal2 Күнтізбе cal3 = Calendar.getInstance (); // жариялау cal3 cal1.setTime (date1); // күнді cal1 -ге қою cal2.setTime (date2); cal3.setTime (date3);
Қадам 3. cal1 мен cal2 -ді алдыңғы әдісті қолданып салыстырыңыз
Келесі код tr мәнін шығарады
System.out.print (cal1.before (cal2)); // «true» мәнін қайтарады
4 -қадам. Cal1 мен cal2 -ді after әдісін қолданып салыстырыңыз
Келесі код жалған мәнді қайтарады, себебі cal1 - cal2 алдындағы күн.
System.out.print (cal1.after (cal2)); // «жалған» мәнін қайтару
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 пайдалану
Қадам 1. getTime пайдаланыңыз
Сіз сондай -ақ екі күннің уақыт бірлігінің мәндерін тікелей салыстыра аласыз, дегенмен алдыңғы екі әдісті оқу оңай және қолайлы болуы мүмкін. Осылайша сіз 2 қарабайыр деректер түрін салыстырасыз, сондықтан сіз «» және «==» операндаларын қолдана аласыз.
Қадам 2. Ұзақ сандар форматында уақыт нысанын жасаңыз
Күндерді салыстырмас бұрын, бұрын жасалған Date нысанынан Long Integer мәнін жасау қажет. Бақытымызға орай, getTime () әдісі сіз үшін жасайды.
ұзақ уақыт1 = getTime (дата1); // дата1 -дің қарабайыр уақытын1 жарияла1 ұзақ уақыт2 = getTime (дата2); // дата2 қарабайыр уақыт2 мәнін жариялау
3 -қадам. Салыстырудан аз орындаңыз
Осы екі бүтін мәнді салыстыру үшін (<) кіші операнды қолданыңыз. Уақыт1 уақыт2 -ден аз болғандықтан, бірінші хабарлама пайда болады. Else операторы синтаксисті аяқтау үшін енгізілген.
if (time1 <time2) {System.out.println («дата1 - күннің алдындағы күн»); // көрсетеді, себебі time1 <time2} else {System.out.println («date1 - датадан 2 күн бұрын емес»); }
Қадам 4. Салыстырудан гөрі үлкенірек орындаңыз
Осы екі бүтін мәнді салыстыру үшін (>) үлкен операндты қолданыңыз. Уақыт1 уақыт2 -ден үлкен болғандықтан, бірінші хабарлама пайда болады. Else операторы синтаксисті аяқтау үшін енгізілген.
if (time2> time1) {System.out.println («дата2 - күннен кейінгі күн»); // көрсетеді, себебі time2> time1} else {System.out.println («date2 - күннен кейінгі күн емес»); }
5 -қадам. Тең салыстыруды орындаңыз
Осы екі бүтін сандарды салыстыру үшін мәндердің теңдігін тексеру үшін операнд функциясын қолданыңыз (==). Уақыт1 уақыт3 -ке тең болғандықтан, бірінші хабарлама пайда болады. Егер бағдарлама ағыны else операторына кірсе, бұл екі уақыттың бірдей мәні жоқ екенін білдіреді.
if (time1 == time2) {System.out.println («екі күн де бірдей»); } else {System.out.println («1 -ші 2 -ші сияқты емес»); // көрсетеді, себебі уақыт1! = уақыт2}