Java -da ikkita sanani solishtirishning 4 usuli

Mundarija:

Java -da ikkita sanani solishtirishning 4 usuli
Java -da ikkita sanani solishtirishning 4 usuli

Video: Java -da ikkita sanani solishtirishning 4 usuli

Video: Java -da ikkita sanani solishtirishning 4 usuli
Video: Inkscape - Урок 1: Знакомство, простейшие фигуры 2024, Aprel
Anonim

Java sanalarini solishtirishning turli usullari mavjud. Ichkarida, sana (uzoq) nuqta sifatida ifodalanadi - 1970 yil 1 yanvardan beri o'tgan millisekundlar soni. Java -da Sana - bu ob'ekt, shuning uchun u solishtirishning bir qancha usullarini o'z ichiga oladi. Ikkita sanani solishtirishning har qanday usuli, asosan, sanalarning vaqtini taqqoslaydi.

Qadamlar

4 -chi 1 -usul: solishtirishTo -dan foydalanish

4301351 1
4301351 1

Qadam 1. comparTo dan foydalaning

Sana taqqoslanadigan va shuning uchun ikkita sanani to'g'ridan -to'g'ri solishtirish usuli bilan solishtirish mumkin. Agar sanalar bir vaqtning o'zida bo'lsa, usul nolni qaytaradi. Agar taqqoslanadigan sana sana argumentidan oldin bo'lsa, noldan kichik qiymat qaytariladi. Agar taqqoslanadigan sana sana argumentidan keyin bo'lsa, noldan katta qiymat qaytariladi. Agar sanalar teng bo'lsa, 0 qiymati qaytariladi.

4301351 2
4301351 2

Qadam 2. Sana ob'ektlarini yarating

Taqqoslashni boshlashdan oldin har bir sana ob'ektini yaratish kerak bo'ladi. Buning bir usuli - SimpleDateFormat sinfidan foydalanish. Bu sana qiymatlarini sana ob'ektlariga oson kiritish imkonini beradi.

    SimpleDateFormat sdf = yangi SimpleDateFormat ("yyyy-MM-dd"); // Yangi sana ob'ektlarida qiymatlarni e'lon qilish uchun. sanalarni yaratishda bir xil sana formatidan foydalaning Date date1 = sdf.parse ("1995-02-23"); // sana1-1995 yil 23 fevral, sana sana2 = sdf.parse ("2001-10-31"); // sana2-2001 yil 31 oktyabr, sana sana3 = sdf.parse ("1995-02-23"); // sana3 - 1995 yil 23 fevral

4301351 3
4301351 3

Qadam 3. Sana ob'ektlarini solishtiring

Quyidagi kod sizga har bir holatni ko'rsatadi - kichik, teng va kattaroq.

    sana1.compareTo (sana2); // sana1 <sana2, 0dan kam qaytaradi date2.compareTo (sana1); // sana2> sana1, 0 dan katta qaytaradi1 date1.compareTo (sana3); // sana1 = sana3, shuning uchun konsolga 0 bosiladi

4 -usul 2: Teng, keyin va oldindan foydalanish

4301351 4
4301351 4

Qadam 1. tenglikdan keyin ham, oldin ham ishlating

Xurmolarni teng usullar bilan solishtirish mumkin, keyin va undan oldingi usullar. Agar ikkita sana bir vaqtning o'zida bo'lsa, equals usuli to'g'ri bo'ladi. Misollar solishtirish usulidan oldin yaratilgan sanalarni ishlatadi.

4301351 5
4301351 5

Qadam 2. Avvalgi usul yordamida solishtiring

Quyidagi kod haqiqiy va noto'g'ri holatni ko'rsatadi. Agar sana1 sanadan 2 oldin bo'lsa, oldin rost qaytariladi. Agar bunday bo'lmasa, oldin false qaytariladi.

    System.out.print (sana1.dan oldin (sana2)); // haqiqiy System.out.print (sana2.before (sana2)) ni chop etadi; // noto'g'ri yozadi

4301351 6
4301351 6

Qadam 3. After usuli yordamida solishtiring

Quyidagi kod haqiqiy va noto'g'ri holatni ko'rsatadi. Agar sana2 sana1dan keyin bo'lsa, keyin qaytariladi. Agar bunday bo'lmasa, "false" qaytarilgandan keyin.

    System.out.print (sana2.dan keyin (sana1)); // haqiqiy System.out.print (sana1.dan keyin (sana2)); // noto'g'ri yozadi

4301351 7
4301351 7

4 -qadam. Equals usuli yordamida solishtiring

Quyidagi kod haqiqiy va noto'g'ri holatni ko'rsatadi. Agar sanalar teng bo'lsa, equals rostini qaytaradi. Agar ular bo'lmasa, equals noto'g'ri qaytaradi.

    System.out.print (sana1. teng (sana3)); // haqiqiy tizimni chop etadi.

3 -usul 4: Taqvim sinfidan foydalanish

4301351 8
4301351 8

Qadam 1. Taqvimdan foydalaning

Taqvim sinfida, shuningdek, sana klassi uchun yuqorida ta'riflanganidek, xuddi shunday ishlaydigan, keyin va oldin taqqoslash usullari tengdir. Agar sana ma'lumoti taqvimda saqlansa, taqqoslash uchun sanani ajratib olishning hojati yo'q.

4301351 9
4301351 9

Qadam 2. Taqvim misollarini yarating

Taqvim usullaridan foydalanish uchun sizga bir nechta taqvim misollari kerak bo'ladi. Yaxshiyamki, siz allaqachon yaratilgan sana misollaridan vaqtni olishingiz mumkin.

    Kalendar kal1 = Calendar.getInstance (); // e'lon qiladi cal1 Taqvim cal2 = Calendar.getInstance (); // e'lon qiladi cal2 Taqvim cal3 = Calendar.getInstance (); // cal3 ni e'lon qiladi cal1.setTime (sana1); // sana cal1 ga qo'llaniladi cal2.setTime (sana2); cal3.setTime (sana3);

4301351 10
4301351 10

Qadam 3. cal1 va cal2 ni avval ishlatib solishtiring

Quyidagi kod to'g'ri chop etilishi kerak, chunki cal1 cal2dan oldin.

    System.out.print (cal1.before (cal2)); // to'g'ri chop etiladi

4301351 11
4301351 11

Qadam 4. cal1 va cal2 ni after yordamida solishtiring

Quyidagi kod noto'g'ri yozilishi kerak, chunki cal1 cal2dan oldin.

    System.out.print (cal1.after (cal2)); // noto'g'ri yozadi

4301351 12
4301351 12

5 -qadam. Cal1 va cal2 ni tenglik yordamida solishtiring

Quyidagi kod haqiqiy va noto'g'ri holatlarning misolini ko'rsatadi. Vaziyat taqqoslanadigan taqvim misollariga bog'liq. Kod keyingi satrda "rost", keyin "noto'g'ri" yozishi kerak.

    System.out.println (cal1.equals (cal3)); // to'g'ri chop etadi: cal1 == cal3 System.out.print (cal1.equals (cal2)); // noto'g'ri yozadi: cal1! = cal2

4 -usul 4: getTime -dan foydalanish

4301351 13
4301351 13

Qadam 1. getTime -dan foydalaning

Ikkita sananing vaqtini to'g'ridan -to'g'ri taqqoslash mumkin, garchi oldingi yondashuvlarning har biri o'qilishi mumkin va shuning uchun afzalroqdir. Bu ikkita ibtidoiy ma'lumot turini taqqoslash bo'ladi, shuning uchun uni "" va "==" yordamida bajarish mumkin.

4301351 14
4301351 14

2 -qadam. Uzoq muddatli ob'ektlarni yarating

Sanalarni taqqoslashdan oldin, avval yaratilgan sana ob'ektlari ma'lumotlari bilan uzun tamsayılarni yaratish kerak. Yaxshiyamki, getTime () usuli siz uchun ko'p ishlarni bajaradi.

    uzoq vaqt1 = getTime (sana1); // ibtidoiy vaqtni e'lon qiladi1 kundan boshlab1 uzoq vaqt2 = getTime (sana2); // sana2 dan ibtidoiy vaqt2 ni e'lon qiladi

4301351 15
4301351 15

Qadam 3. Taqqoslashdan ko'ra kamroq ish qiling

Bu ikkita tamsayı qiymatini solishtirish uchun kamroq belgidan (<) foydalaning. Time1 vaqti 2dan kam bo'lgani uchun birinchi xabar chop etilishi kerak. Else iborasi to'g'ri sintaksis uchun kiritilgan.

    if (vaqt1 <vaqt2) {System.out.println ("sana1 sanadan oldin 2"); // vaqtdan beri chop etiladi <vaqt2} boshqa {System.out.println ("sana1 sanadan oldin emas"); }

4301351 16
4301351 16

Qadam 4. Taqqoslashdan ko'ra kattaroq ishni bajaring

Bu ikkita tamsayı qiymatini solishtirish uchun katta belgidan (>) foydalaning. Time1 2 -vaqtdan katta bo'lgani uchun, birinchi xabar chop etilishi kerak. Else iborasi to'g'ri sintaksis uchun kiritilgan.

    if (vaqt2> vaqt1) {System.out.println ("sana2 sanadan keyin 1"); // vaqtdan beri chop etiladi> vaqt1} boshqa {System.out.println ("sana2 sanadan keyin emas"); }

4301351 17
4301351 17

5 -qadam. Teng taqqoslashni qiling

Tenglik uchun bu ikki tamsayı qiymatni solishtirish uchun tenglikni tekshirish uchun belgidan foydalaning (==). Vaqt1 vaqt3 ga teng bo'lgani uchun, birinchi xabar chop etilishi kerak. Agar dastur else buyrug'iga kirsa, demak, vaqtlar teng emas.

    if (time1 == time2) {System.out.println ("sanalar teng"); } else {System.out.println ("sanalar teng emas"); // 1 -vaqtdan boshlab chop etiladi! = vaqt2}

Tavsiya: