Java-dagi sanalarni solishtiring

Muallif: Roger Morrison
Yaratilish Sanasi: 24 Sentyabr 2021
Yangilanish Sanasi: 1 Iyul 2024
Anonim
Java-dagi sanalarni solishtiring - Maslahatlar
Java-dagi sanalarni solishtiring - Maslahatlar

Tarkib

Java-da sanalarni taqqoslashning bir necha yo'li mavjud. Ichkarida sana vaqtning (uzoq) nuqtasi - 1970 yil 1 yanvardan beri o'tgan millisekundalar soni bilan ifodalanadi. Java-da sana Date ob'ekti bo'lib, u sanalarni taqqoslashning bir necha usullarini o'z ichiga oladi. Ikki sanani taqqoslashning har qanday usuli asosan ikkala sananing o'tgan vaqtini taqqoslaydi.

Qadam bosish

4-usulning 1-usuli: "ComparTo" buyrug'idan foydalanish

  1. ComparTo dan foydalaning. Sana ComparableDate> ni amalga oshiradi va shuning uchun ComparTo usuli yordamida ikkita sana to'g'ridan-to'g'ri bir-biri bilan taqqoslanishi mumkin. Agar sanalar bir xil vaqtni ko'rsatadigan bo'lsa, usul nolga teng bo'ladi. Agar taqqoslanadigan sana sana argumentidan oldin bo'lsa, u holda salbiy qiymat qaytariladi. Agar taqqoslanadigan sana sana argumentiga qaraganda kechroq bo'lsa, u holda ijobiy qiymat qaytariladi. Agar sanalar bir xil bo'lsa, nol qaytariladi.
  2. Date ob'ektlarini yarating. Siz ularni taqqoslashni boshlashdan oldin har bir sana ob'ektini yaratishingiz kerak bo'ladi. Buning bir usuli - SimpleDateFormat sinfini qo'llash. Bu sizga sana ob'ektlariga sanalarni osongina kiritish imkonini beradi.

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

  3. Sana ob'ektlarini solishtiring. Quyida har bir holat ko'rsatilgan - kamroq, teng va kattaroq.

      date1.compareTo (sana2); // date1 date2, 0 date2 dan kam.compareTo (date1); // date2> date1, 0 date1.compareTo (date3) dan katta qaytib keladi; // date1 = date3, 0 ni qaytaradi

4 ning 2-usuli: "teng, keyin va oldin" usullaridan foydalanish

  1. Teng, keyin va oldin foydalaning. Sanalarni bir-biriga teng, keyin va oldin usullaridan foydalanib taqqoslash mumkin. Agar ikkita sana bir xil vaqtni ko'rsatsa, teng usul "true" qiymatini qaytaradi. Misollar ComparTo usuli orqali avval yaratilgan sanalardan foydalaniladi.
  2. Oldingi usul yordamida taqqoslang. Quyidagi kodda true va false holatlari ko'rsatilgan. Agar sana1 sana2 dan oldin bo'lsa, natija to'g'ri bo'ladi. Agar yo'q bo'lsa, oldin false qaytaradi.

      System.out.print (date1.b oldin (date2)); // haqiqiy System.out.print-ni chop eting (date2.before (date2)); // false ni chop etish

  3. Buni keyingi usul bilan solishtiring. Quyidagi kodda true va false holatlari ko'rsatilgan. Agar sana2 sana1dan kech bo'lsa, keyin "true" qiymatiga qaytadi. Agar yo'q bo'lsa, keyin false qiymati qaytariladi.

      System.out.print (date2.after (date1)); // haqiqiy chop eting System.out.print (date1.after (date2)); // noto'g'ri chop etish

  4. Tenglash usuli yordamida taqqoslang. Quyidagi kodda true va false holatlari ko'rsatilgan. Agar sanalar bir xil bo'lsa, "true" qiymatini qaytaradi. Agar yo'q bo'lsa, "false" qiymatini qaytaradi.

      System.out.print (date1.equals (date3)); // true-ni chop eting System.out.print (date1.equals (date2)); // false-ni chop eting

4-dan 3-usul: Kalendar sinfidan foydalanish

  1. Taqvim sinfidan foydalaning. Taqvim sinfida, shuningdek, sana sinfi uchun yuqorida tavsiflangan usulda ishlaydigan "ComparTo" ga teng, keyin va oldingi usullar mavjud. Shunday qilib, agar sana ma'lumotlari taqvimda saqlansa, faqat ikkita sanani taqqoslash uchun "sana" ni chiqarishga hojat yo'q.
  2. Taqvim namunasini yarating. Taqvim usullaridan foydalanish uchun ba'zi Taqvim misollari kerak. Yaxshiyamki, siz Sana misollari tomonidan yaratilgan vaqtdan foydalanishingiz mumkin.

      Kalendar kal1 = Calendar.getInstance (); // cal1-ni e'lon qiladi Calendar cal2 = Calendar.getInstance (); // cal2-ni e'lon qiladi Calendar cal3 = Calendar.getInstance (); // cal3 cal1.setTime (date1) e'lon qiladi; // sana cal1 cal2.setTime (date2) uchun qo'llaniladi; cal3.setTime (sana3);

  3. Oldindan foydalanib cal1 va cal2 ni taqqoslang. Cal1 cal2 dan oldingi bo'lgani uchun quyidagi kod to'g'ri keladi.

      System.out.print (cal1.b oldin (cal2)); // to'g'ri chop etish

  4. Cal1 va cal2 ni keyin yordamida taqqoslang. Quyidagi kod noto'g'ri qiymatini qaytaradi, chunki cal1 cal2 dan oldingi.

      System.out.print (cal1.after (cal2)); // false ni chop etish

  5. Cal1 va cal2 ni tenglik yordamida taqqoslang. Quyidagi kod haqiqiy va yolg'onning misolini ko'rsatadi. Vaziyat taqqoslanadigan taqvim misollariga bog'liq. Quyidagi kod "to'g'ri", keyin esa keyingi satrda "yolg'on" ni qaytaradi.

      System.out.println (cal1.equals (cal3)); // print true: cal1 == cal3 System.out.print (cal1.equals (cal2)); // false ni chop eting: cal1! = cal2

4 ning 4-usuli: "getTime" usulidan foydalanish

  1. GetTime-dan foydalaning. Ikkala vaqtni to'g'ridan-to'g'ri taqqoslash mumkin, ammo yuqoridagi har qanday yondashuv ko'proq o'qiladigan natijalarga olib kelishi mumkin va shuning uchun afzalroq. Bu ikkita ibtidoiy ma'lumotlar turlarini taqqoslash, shuning uchun "", ">" va "==" yordamida bajarish mumkin.
  2. "Uzoq" vaqt moslamalarini yarating. Sanalarni taqqoslashdan oldin, avval yaratilgan Date ob'ektlari ma'lumotlaridan uzun butun sonlarni yaratish kerak. Yaxshiyamki, getTime () usuli siz uchun ko'p ishlarni bajaradi.

      long time1 = getTime (sana1); // date1 longtime2 = getTime (date2) ning ibtidoiy vaqtini1 e'lon qiladi; // sana2 ning ibtidoiy vaqtini2 e'lon qiladi

  3. "Kichik" tenglamasidan foydalaning. Ushbu ikkita tamsayı qiymatini solishtirish uchun "kamroq" belgisini () ishlating. Time1 vaqt2 dan kam bo'lganligi sababli, birinchi xabar ekranda chop etilishi kerak. Else iborasi to'g'ri sintaksis uchun kiritilgan.

      agar (vaqt1 vaqt2) {System.out.println ("sana1 sana2dan oldinroq"); // chop etish, chunki time1 time2} else {System.out.println ("date1 date2 dan kech yoki unga teng"); }

  4. "Katta" dan taqqoslashni amalga oshiring. Ushbu ikkita butun sonni taqqoslash uchun "katta" belgisini (>) ishlating. Vaqt1 vaqt2 dan katta bo'lganligi sababli birinchi xabar ekranda chop etiladi. Else iborasi to'g'ri sintaksis uchun kiritilgan.

      if (time2> time1) {System.out.println ("sana2 sana1dan keyin keladi"); // chop etish, chunki time2> time1} else {System.out.println ("date2 date1dan oldin yoki unga teng"); }

  5. "Teng" taqqoslashni amalga oshiring. Ushbu ikkita butun sonni taqqoslash uchun (==) belgidan foydalaning. Vaqt1 vaqt3 ga teng bo'lgani uchun birinchi xabar chop etilishi kerak. Agar dastur else operatoriga o'tadigan bo'lsa, demak vaqt bir xil emas.

      if (time1 == time2) {System.out.println ("Sanalar teng"); } else {System.out.println ("Sanalar teng emas"); // chop etish, chunki vaqt1! = vaqt2}