Java tarixlərini müqayisə etməyin müxtəlif yolları var. Daxili olaraq, bir tarix (uzun) bir zaman nöqtəsi olaraq təmsil olunur - 1 Yanvar 1970 -dən keçən millisekundların sayı. Java -da Tarix bir obyektdir, yəni müqayisə üçün bir çox üsulları ehtiva edir. İki tarixi müqayisə etmək üçün hər hansı bir üsul əslində tarixlərin vaxtlarını müqayisə edəcək.
Addımlar
Metodun 1 -dən 4 -ü: müqayisə etməkdən istifadə edin
Addım 1. CompareTo istifadə edin
Tarix Müqayisəli tətbiq edir və buna görə də iki tarix birbaşa karşılaştırma metodu ilə müqayisə edilə bilər. Tarixlər eyni vaxta aiddirsə, metod sıfır qaytarır. Müqayisə olunan tarix tarix arqumentindən əvvəldirsə, sıfırdan aşağı olan bir dəyər qaytarılır. Müqayisə olunan tarix tarix arqumentindən sonra olarsa, sıfırdan böyük bir dəyər qaytarılır. Tarixlər bərabərdirsə, 0 dəyəri qaytarılır.
Addım 2. Tarix obyektləri yaradın
Müqayisəyə başlamazdan əvvəl hər bir tarix obyektini yaratmalısınız. Bunun bir yolu SimpleDateFormat sinifindən istifadə etməkdir. Tarix dəyərlərinin tarix obyektlərinə asanlıqla daxil edilməsinə imkan verir.
SimpleDateFormat sdf = yeni SimpleDateFormat ("yyyy-AA-gg"); // Yeni tarix obyektlərində dəyərlərin elan edilməsi üçün. tarixlər yaradarkən eyni tarix formatını istifadə edin Date date1 = 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 bir işi göstərəcək - daha az, bərabər və daha böyük.
date1.compareTo (date2); // tarix1 <tarix2, 0 tarixdən az qaytarır2 date2.compareTo (tarix1); // date2> date1, 0 tarixdən böyük qaytarır1 date1.compareTo (date3); // tarix1 = tarix3, buna görə konsol üçün 0 yazılacaq
Metod 2 /4: Bərabər, sonra və əvvəl istifadə etmək
Addım 1. Sonra və əvvəl bərabərləri istifadə edin
Tarixlər, metodlardan sonra və əvvəl bərabər olanlarla müqayisə edilə bilər. Eyni tarix üçün iki tarix varsa, bərabərlik metodu doğruya dönəcəkdir. Nümunələr, əvvəllər müqayisəli metoddan yaradılmış tarixlərdən istifadə edəcək.
Addım 2. Əvvəlki metoddan istifadə edərək müqayisə edin
Aşağıdakı kod doğru və yanlış bir işi göstərir. Əgər tarix1 tarixdən 2 -dirsə, əvvəl true qaytarılır. Əgər deyilsə, əvvəl yalan qaytarılır.
System.out.print (tarix1.dən əvvəl (tarix2)); // doğru System.out.print (date2.before (date2)) yazdırır; // yalan yazır
Addım 3. After metodundan istifadə edərək müqayisə edin
Aşağıdakı kod doğru və yanlış bir işi göstərir. Date2 tarix1 tarixindən sonradırsa, sonra true qaytarılır. Əks təqdirdə, saxta qaytarıldıqdan sonra.
System.out.print (date2.after (date1)); // doğru yazır System.out.print (date1.after (date2)); // false yazır
Addım 4. Equals metodundan istifadə edərək müqayisə edin
Aşağıdakı kod doğru və yanlış bir işi göstərir. Tarixlər bərabərdirsə, equals doğru qaytarır. Əgər bunlar yoxdursa, bərabərlər yanlış qaytarır.
System.out.print (date1.equals (date3)); // doğru yazır System.out.print (date1.equals (date2)); // false yazır
Metod 3 /4: Təqvim Sinifindən istifadə
Addım 1. Təqvimdən istifadə edin
Təqvim sinfi, tarix sinfi üçün yuxarıda təsvir edildiyi kimi eyni şəkildə işləyən, sonra və əvvəl müqayisəli metodlara malikdir. Tarix məlumatları bir təqvimdə saxlanılırsa, yalnız müqayisə aparmaq üçün tarixi çıxarmağa ehtiyac yoxdur.
Addım 2. Təqvim nümunələri yaradın
Təqvim metodlarından istifadə etmək üçün bir neçə Təqvim nümunəsinə ehtiyacınız olacaq. Xoşbəxtlikdən, artıq yaradılmış Tarix nümunələrindən vaxtları tuta bilərsiniz.
Təqvim cal1 = Calendar.getInstance (); // cal1 təqvim elan edir cal2 = Calendar.getInstance (); // cal2 elan edir Təqvim cal3 = Calendar.getInstance (); // cal3 cal1.setTime (date1) elan edir; // tarixi cal1 cal2.setTime (date2) üçün tətbiq edir; cal3.setTime (tarix3);
Addım 3. Daha əvvəl istifadə edərək cal1 və cal2 müqayisə edin
Cal1 cal2 -dən əvvəl olduğundan aşağıdakı kod doğru yazılmalıdır.
System.out.print (cal1.forefore (cal2)); // doğru yazacaq
Addım 4. Cal1 və cal2 -ni sonra istifadə edərək müqayisə edin
Cal1 cal2 -dən əvvəl olduğundan aşağıdakı kod yanlış yazmalıdır.
System.out.print (cal1.after (cal2)); // yalan yazır
Addım 5. Cal1 və cal2 -ni bərabərlərdən istifadə edərək müqayisə edin
Aşağıdakı kod həm həqiqi, həm də yalançı bir vəziyyətin nümunəsini göstərəcəkdir. Vəziyyət müqayisə olunan təqvim nümunələrindən asılıdır. Kod növbəti sətirdə "doğru", sonra "yanlış" yazmalıdır.
System.out.println (cal1.equals (cal3)); // doğru yazdırır: cal1 == cal3 System.out.print (cal1.equals (cal2)); // yanlış yazır: cal1! = cal2
Metod 4 /4: GetTime istifadə edin
Addım 1. GetTime istifadə edin
Əvvəlki yanaşmalardan hər hansı birinin daha oxunaqlı olması və buna görə daha çox üstünlük verilsə də, iki tarixin vaxt nöqtəsini birbaşa müqayisə etmək də mümkündür. Bu iki ibtidai məlumat növünün müqayisəsi olacaq, buna görə də "" və "==" ilə edilə bilər.
Addım 2. Uzun müddət işləyən obyektlər yaradın
Tarixləri müqayisə etməzdən əvvəl, əvvəllər yaradılmış Tarix obyektlərinin məlumatları ilə uzun tam ədədlər yaratmalısınız. Xoşbəxtlikdən, getTime () metodu sizin üçün çox iş görəcək.
uzun zaman1 = getTime (tarix1); // ibtidai zaman1 -i tarixdən uzun müddət1 uzun müddət2 = getTime (tarix2) elan edir; // ibtidai vaxtı2 tarixdən etibarən2 elan edir
Addım 3. Müqayisədən daha azını edin
Bu iki tam ədədləri müqayisə etmək üçün simvoldan (<) az istifadə edin. Zaman1 vaxt 2 -dən az olduğundan ilk mesaj çap olunmalıdır. Else ifadəsi düzgün sintaksis üçün daxil edilmişdir.
if (zaman1 <zaman2) {System.out.println ("tarix1 tarixdən əvvəl 2"); // vaxt1 -dən bəri yazılacaq <zaman2} başqa {System.out.println ("date1, date2 -dən əvvəl deyil"); }
Addım 4. Müqayisədən daha böyük bir şey edin
Bu iki tam ədədləri müqayisə etmək üçün simvoldan böyük (>) istifadə edin. Zaman1 vaxt 2 -dən böyük olduğundan ilk mesaj çap olunmalıdır. Else ifadəsi düzgün sintaksis üçün daxil edilmişdir.
if (zaman2> zaman1) {System.out.println ("date2 tarixdən sonra 1"); // time2> time1} başqa {System.out.println ("date2 tarixdən 1 deyil") sonra yazdırılacaq; }
Addım 5. Bərabər müqayisə aparın
Bərabərliyi yoxlamaq üçün simvoldan istifadə edin (==) bərabərlik üçün bu iki tam ədədləri müqayisə edin. Zaman1 vaxt3 -ə bərabər olduğu üçün ilk mesaj çap olunmalıdır. Proqram else ifadəsinə girərsə, bu zamanların bərabər olmadığı anlamına gəlir.
if (time1 == time2) {System.out.println ("tarixlər bərabərdir"); } başqa {System.out.println ("tarixlər bərabər deyil"); // vaxt1 -dən bəri çap olunacaq! = zaman2}