Java'daki tarihleri ​​karşılaştırın

Yazar: Roger Morrison
Yaratılış Tarihi: 24 Eylül 2021
Güncelleme Tarihi: 1 Temmuz 2024
Anonim
39 TL DEPREM ÇANTASI VS 650 TL DEPREM ÇANTASI | PAHALI VS UCUZ
Video: 39 TL DEPREM ÇANTASI VS 650 TL DEPREM ÇANTASI | PAHALI VS UCUZ

İçerik

Java'da tarihleri ​​karşılaştırmanın birkaç yolu vardır. Dahili olarak bir tarih, zaman içinde (uzun) bir nokta olarak temsil edilir - 1 Ocak 1970'ten bu yana geçen milisaniye sayısı. Java'da tarih, Date nesnesidir, yani tarihleri ​​karşılaştırmak için birden çok yöntem içerir. İki tarihi karşılaştırmanın herhangi bir yöntemi, temelde her iki tarihin geçen zamanını karşılaştırır.

Adım atmak

Yöntem 1/4: "CompareTo" komutunu kullanma

  1. CompareTo kullanın. Tarih, ComparableDate> 'i uygular ve bu nedenle, CompareTo yöntemi kullanılarak iki tarih doğrudan birbiriyle karşılaştırılabilir. Tarihler zaman içinde aynı anı gösteriyorsa, yöntem sıfır döndürür. Karşılaştırılan tarih tarih bağımsız değişkeninden önceyse, negatif bir değer döndürülür. Karşılaştırılan tarih, tarih bağımsız değişkeninden daha sonraki bir tarihse, pozitif bir değer döndürülür. Tarihler aynıysa sıfır döndürülür.
  2. Date nesnelerini oluşturun. Karşılaştırmaya başlamadan önce her bir tarih nesnesini oluşturmanız gerekecektir. Bunu yapmanın bir yolu SimpleDateFormat sınıfını uygulamaktır. Bu, Tarih nesnelerine kolayca tarih girmenizi sağlar.

      SimpleDateFormat sdf = new SimpleDateFormat ("yyyy-MM-gg"); // Yeni tarih nesnelerinde değerleri bildirmek için.Tarihleri ​​oluştururken aynı tarih biçimini kullanın Date date1 = sdf.parse ("1995-02-23"); // tarih1 23 Şubat 1995 Tarih tarih2 = sdf.parse ("2001-10-31"); // tarih2 31 Ekim 2001 Tarih date3 = sdf.parse ("1995-02-23"); // date3 23 Şubat 1995

  3. Tarih nesnelerini karşılaştırın. Aşağıda her durum gösterilmektedir - küçüktür, eşittir ve büyüktür.

      date1.compareTo (tarih2); // tarih1 tarih2, 0'dan az tarih2.compareTo (tarih1); // tarih2> tarih1, 0'dan büyük döndürür tarih1.compareTo (tarih3); // tarih1 = tarih3, 0 döndürür

Yöntem 2/4: "Eşittir, sonra ve önce" yöntemlerini kullanma

  1. Eşittir, sonra ve önce kullanın. Tarihler, eşittir, sonra ve önce yöntemleri kullanılarak birbirleriyle karşılaştırılabilir. İki tarih aynı zamanı gösteriyorsa, eşittir yöntemi "true" değerini döndürür. Örnekler, daha önce oluşturulan tarihleri ​​ComparTo yöntemi aracılığıyla kullanır.
  2. Önceki yöntemi kullanarak karşılaştırın. Aşağıdaki kod, bir doğru ve yanlış durumu gösterir. Tarih1, tarih2'den önceyse, sonuç doğrudur. Değilse, önce yanlış döndürür.

      System.out.print (tarih1.beden önce (tarih2)); // true System.out.print (tarih2.beden önce (tarih2)); // yanlış yazdır

  3. Bunu after yöntemi ile karşılaştırın. Aşağıdaki kod, bir doğru ve yanlış durumu gösterir. Tarih2, tarih1'den sonraysa, sonra doğru döndürür. Değilse, sonra yanlış döndürür.

      System.out.print (tarih2.after (tarih1)); // doğru yazdır System.out.print (tarih1.after (tarih2)); // yanlış yazdır

  4. Eşittir yöntemini kullanarak karşılaştırın. Aşağıdaki kod, bir doğru ve yanlış durumu gösterir. Tarihler aynıysa, eşittir doğru döndürür. Değilse, eşittir yanlış döndürür.

      System.out.print (tarih1.equals (tarih3)); // doğru yazdır System.out.print (tarih1.equals (tarih2)); // yanlış yazdır

Yöntem 3/4: Takvim sınıfını kullanma

  1. Takvim sınıfını kullanın. Calendar sınıfı ayrıca, date sınıfı için yukarıda açıklanan şekilde çalışan CompareTo, equals, after ve before yöntemlerine de sahiptir. Dolayısıyla, tarih verileri bir takvimde tutulursa, yalnızca iki tarihi karşılaştırmak için "tarih" i çıkarmanıza gerek yoktur.
  2. Takvim örneğini oluşturun. Takvim yöntemlerini kullanmak için bazı Takvim örneklerine ihtiyacınız vardır. Neyse ki, Date örnekleri tarafından oluşturulan zamanı kullanabilirsiniz.

      Takvim cal1 = Calendar.getInstance (); // cal1 Calendar'ı bildirir cal2 = Calendar.getInstance (); // cal2 Calendar'ı bildirir cal3 = Calendar.getInstance (); // cal3 cal1.setTime (tarih1); // tarihi cal1 cal2.setTime (tarih2) için uygular; cal3.setTime (tarih3);

  3. Daha önce kullanarak cal1 ve cal2'yi karşılaştırın. Aşağıdaki kod true değerini döndürür çünkü cal1 cal2'den öncedir.

      System.out.print (cal1.before (cal2)); // doğru yazdır

  4. Sonra kullanarak cal1 ve cal2'yi karşılaştırın. Aşağıdaki kod yanlış döndürür çünkü cal1 cal2'den öncedir.

      System.out.print (cal1.after (cal2)); // yanlış yazdır

  5. Eşittir kullanarak cal1 ve cal2'yi karşılaştırın. Aşağıdaki kod, hem doğru hem de yanlışın bir örneğini göstermektedir. Koşul, karşılaştırılan Takvim örneklerine bağlıdır. Aşağıdaki kod, sonraki satırda "true" ve ardından "false" değerini döndürür.

      System.out.println (cal1.equals (cal3)); // true print: cal1 == cal3 System.out.print (cal1.equals (cal2)); // yanlış yazdır: cal1! = cal2

Yöntem 4/4: "getTime" yöntemini kullanma

  1. GetTime kullanın. İki zaman noktasını doğrudan karşılaştırmak da mümkündür, ancak yukarıdaki yaklaşımlardan herhangi birinin daha okunabilir sonuçlar vermesi muhtemeldir ve bu nedenle tercih edilir. Bu, iki ilkel veri türünün karşılaştırmasıdır, dolayısıyla "", ">" ve "==" ile yapılabilir.
  2. "Uzun" zaman nesnelerini oluşturun. Tarihleri ​​karşılaştırmadan önce, önceden oluşturulmuş Date nesnelerinin verilerinden uzun tamsayılar oluşturmanız gerekir. Neyse ki getTime () yöntemi işin çoğunu sizin yerinize yapacak.

      uzun zaman1 = getTime (tarih1); // date1 long time2 = getTime (date2); // tarih2'nin ilkel time2'sini bildirir

  3. "Küçüktür" denklemini kullanın. Bu iki tamsayı değerini karşılaştırmak için "küçüktür" simgesini () kullanın. Time1, time2'den az olduğundan, ilk mesaj ekrana yazdırılmalıdır. Else ifadesi, doğru sözdizimi için dahil edilmiştir.

      eğer (zaman1 zaman2) {System.out.println ("tarih1, tarih2'den önce"); // çünkü zaman1 zaman2} diğer {System.out.println ("tarih1, tarih2'den sonra veya ona eşit"); }

  4. "Büyüktür" karşılaştırması yapın. Bu iki tamsayıyı karşılaştırmak için "büyüktür" simgesini (>) kullanın. Time1, time2'den büyük olduğundan, ilk mesaj ekrana yazdırılır. Else ifadesi, doğru sözdizimi için dahil edilmiştir.

      if (zaman2> zaman1) {System.out.println ("tarih2, tarih1'den sonra gelir"); // çünkü zaman2> zaman1} diğer {System.out.println ("tarih2, tarih1'den önce veya ona eşit"); }

  5. "Eşittir" karşılaştırması yapın. Bu iki tamsayıyı karşılaştırmak için (==) simgesini kullanın. Time1, time3'e eşit olduğundan, ilk mesaj yazdırılmalıdır. Program else ifadesine ulaşırsa, zamanların aynı olmadığı anlamına gelir.

      if (zaman1 == zaman2) {System.out.println ("Tarihler eşittir"); } else {System.out.println ("Tarihler eşit değildir"); // yazdır çünkü zaman1! = zaman2}