Java proqramlaşdırma dilində iki tarixi müqayisə etməyin bir çox yolu var. Kompüterlərdə bir tarix, zaman vahidləri ilə bir rəqəmlə (uzun məlumat növü) təmsil olunur, yəni 1970 -ci il yanvarın 1 -dən keçən millisekundların sayıdır. Java -da Tarix bir obyektdir, yəni müqayisə etmək üçün bir neçə üsul. İki tarixi müqayisə etmək üçün istifadə olunan hər hansı bir üsul, əslində iki tarixin zaman vahidlərini müqayisə etməkdir.
Addım
Metodun 1 -dən 4 -ü: müqayisə etməkdən istifadə edin
Addım 1. CompareTo istifadə edin
Tarix obyekti Comparable tətbiq edir, beləliklə 2 tarix bir -biri ilə müqayisə etməklə müqayisə edilə bilər. Hər iki tarix də zaman vahidlərində eyni sayda olarsa, metod sıfır qaytarır. İkinci tarix birincidən azdırsa, sıfırdan aşağı bir dəyər qaytarılır. İkinci tarix birincidən daha böyükdürsə, metod sıfırdan böyük bir dəyər qaytarır. Hər iki tarix eyni olarsa, metod sıfır dəyəri qaytaracaq.
Addım 2. Birdən çox Tarix obyekti yaradın
Müqayisə etməzdən əvvəl birdən çox Tarix obyekti yaratmalısınız. Bunun ən asan yollarından biri SimpleDateFormat sinifindən istifadə etməkdir. Bu sinif, giriş tarixi dəyərini Tarix obyektinə çevirməyi asanlaşdırır.
SimpleDateFormat sdf = yeni SimpleDateFormat ("yyyy-AA-gg"). Yeni bir '' Obyekt Tarixində '' bir dəyər elan etmək üçün tarixi yaratarkən eyni tarix formatını istifadə edin. Tarix tarixi1 = sdf.parse ("1995-02-23"); // tarix1 23 Fevral 1995 tarix Tarix2 = sdf.parse ("2001-10-31"); // date2 31 Oktyabr 2001 tarixidir Date date3 = sdf.parse ("1995-02-23"); // date3 23 fevral 1995 -ci ildir
Addım 3. Tarix obyektlərini müqayisə edin
Aşağıdakı kod sizə hər hal üçün nümunələr göstərəcək - daha az, bərabər və daha böyük.
date1.compareTo (date2); // date1 <date2, 0 date2.compareTo (date1) dəyərindən az bir dəyər qaytarır; // date2> date1, 0 date1.compareTo (date3) -dən böyük bir dəyər qaytarır; // tarix1 = tarix3, buna görə konsolda 0 çıxacaq
Metod 2 /4: Bərabərlərdən sonra, sonra və əvvəl istifadə etmək
Addım 1. Sonra və əvvəl bərabərləri istifadə edin
Tarixləri bərabər, sonra və əvvəl metodlarla müqayisə etmək olar. İki tarix eyni vaxtda eyni dəyərə sahibdirsə, equals metodu doğru qaytarır. Aşağıdakı nümunə, müqayisə metodunda nümunədə yaradılan Tarix obyektindən istifadə edəcək.
Addım 2. Əvvəlki üsulla müqayisə edin
Aşağıdakı kod, doğru və yalnış qaytaran bir nümunə hal göstərir. Əgər tarix1 tarixdən 2 əvvəlki bir tarixdirsə, əvvəl metodu doğru qaytarır. Əks təqdirdə, əvvəl metodu false qaytarır.
System.out.print (tarix1.dən əvvəl (tarix2)); // '' true '' System.out.print (date2.before (date2)) dəyərini göstərin; // '' false '' dəyərini qaytarın
Addım 3. After metodundan istifadə edərək müqayisə edin
Aşağıdakı kod, doğru və yalnış qaytaran bir nümunə hal göstərir. Date2 tarix1 tarixindən sonrakı tarixdirsə, after metodu true qaytarır. Əks təqdirdə, after metodu false qaytaracaq.
System.out.print (date2.after (date1)); // '' true '' dəyərini göstərin System.out.print (date1.after (date2)); // '' false '' dəyərini göstərin
Addım 4. Equals metodu ilə müqayisə edin
Aşağıdakı kod, doğru və yalnış qaytaran bir nümunə hal göstərir. Hər iki tarix bərabərdirsə, equals metodu doğru qaytarır. Əks halda, equals metodu false qaytarır.
System.out.print (date1.equals (date3)); // '' true '' dəyərini göstərin System.out.print (date1.equals (date2)); // '' false '' dəyərini göstərin
Metod 3 /4: Sinif Təqvimindən istifadə
Addım 1. Sinif Təqvimindən istifadə edin
Təqvim sinifində, əvvəllər Tarix sinfi üçün təsvir edilənlərlə eyni işləyən müqayisə üsulları, bərabər, sonra və əvvəl də var. Tarix məlumatları bir sinif təqvimində saxlanılırsa, yalnız müqayisə etmək üçün tarixi çıxarmağa ehtiyac yoxdur.
Addım 2. Təqvim nümunəsi yaradın
Sinif Təqvimində metodlardan istifadə etmək üçün birdən çox Təqvim nümunəsi yaratmalısınız. Xoşbəxtlikdən, dəyərləri əvvəllər yaradılmış bir Tarix nümunəsindən istifadə edə bilərsiniz.
Təqvim cal1 = Calendar.getInstance (); // elan cal1 Təqvim cal2 = Calendar.getInstance (); // cal2 təqvim elan edin cal3 = Calendar.getInstance (); // cal3 elan edin cal1.setTime (tarix1); // tarixi cal1 -ə qoyun cal2.setTime (date2); cal3.setTime (tarix3);
Addım 3. Əvvəlki metoddan istifadə edərək cal1 və cal2 -ni müqayisə edin
Aşağıdakı kod tr dəyərini çıxaracaq
System.out.print (cal1.forefore (cal2)); // "true" dəyərini qaytaracaq
Addım 4. after1 metodundan istifadə edərək cal1 və cal2 -ni müqayisə edin
Cal1, cal2 -dən əvvəlki tarix olduğu üçün aşağıdakı kod yalançı olacaq.
System.out.print (cal1.after (cal2)); // '' false '' dəyərini qaytarın
Addım 5. Equ1 metodundan istifadə edərək cal1 və cal2 müqayisə edin
Aşağıdakı kod, doğru və yalnış qaytaran bir nümunə hal göstərəcək. Vəziyyət müqayisə olunan Təqvim nümunəsindən asılıdır. Aşağıdakı kod növbəti sətirdə "doğru", sonra "yalan" dəyərini qaytaracaq.
System.out.println (cal1.equals (cal3)); // '' doğru '' dəyərini qaytarın: cal1 == cal3 System.out.print (cal1.equals (cal2)); // '' false '' dəyərini qaytarın: cal1! = cal2
Metod 4 /4: GetTime istifadə edin
Addım 1. GetTime istifadə edin
Əvvəlki iki metodun oxunması daha asan və üstünlük verilə bilsə də, iki tarixin vaxt vahid dəyərlərini birbaşa müqayisə edə bilərsiniz. Bu şəkildə 2 "ibtidai məlumat növünü müqayisə edəcəksiniz, beləliklə" "və" == "operandlarından istifadə edə bilərsiniz.
Addım 2. Uzun rəqəm formatında bir zaman obyekti yaradın
Tarixləri müqayisə etməzdən əvvəl əvvəllər yaradılmış Tarix obyektindən Uzun Tamsayı dəyər yaratmalısınız. Xoşbəxtlikdən, getTime () metodu sizin üçün bunu edəcək.
uzun zaman1 = getTime (tarix1); // ibtidai zaman1 tarixini elan edin1 uzun müddət2 = getTime (tarix2); // ibtidai zaman2 tarixinin 2 dəyərini elan edin
Addım 3. Müqayisədən daha azını yerinə yetirin
Bu iki tam ədədin dəyərini müqayisə etmək üçün (<) -dən az operand istifadə edin. Zaman1 vaxt2 -dən az olduğundan ilk mesaj görünəcək. Sintaksisi tamamlamaq üçün else ifadəsi daxil edilir.
if (zaman1 <zaman2) {System.out.println ("tarix1 tarixdən əvvəlki tarixdir"); // göstərəcək, çünki zaman1 <zaman2} başqa {System.out.println ("date1, tarixdən əvvəlki bir tarix deyil"); }
Addım 4. Müqayisədən daha böyük bir şey edin
Bu iki tam ədədin dəyərini müqayisə etmək üçün (>) -dən böyük olan operanddan istifadə edin. Zaman1 zaman2 -dən böyük olduğu üçün ilk mesaj görünəcək. Sintaksisi tamamlamaq üçün else ifadəsi daxil edilir.
if (time2> time1) {System.out.println ("date2, tarixdən sonrakı tarixdir"); // göstərəcək, çünki zaman2> vaxt1} başqa {System.out.println ("date2 tarixdən sonrakı tarix deyil"); }
Addım 5. Bərabər müqayisə aparın
Bu iki tam ədədləri müqayisə etmək üçün dəyərlərin bərabərliyini yoxlamaq üçün operand funksiyasından istifadə edin (==). Zaman1 vaxt3 -ə bərabər olduğu üçün ilk mesaj görünəcək. Proqram axını else ifadəsinə girərsə, bu iki vaxtın eyni dəyərə sahib olmadığı anlamına gəlir.
if (time1 == time2) {System.out.println ("hər iki tarix eynidir"); } başqa {System.out.println ("1 -ci 2 -ci ilə eyni deyil"); // göstərəcək, çünki zaman1! = vaxt2}