Java'da İki Tarihi Karşılaştırmanın 4 Yolu

İçindekiler:

Java'da İki Tarihi Karşılaştırmanın 4 Yolu
Java'da İki Tarihi Karşılaştırmanın 4 Yolu

Video: Java'da İki Tarihi Karşılaştırmanın 4 Yolu

Video: Java'da İki Tarihi Karşılaştırmanın 4 Yolu
Video: Java’da İlk KOD ve PROGRAM Yapısı 2024, Mayıs
Anonim

Java programlama dilinde iki tarihi karşılaştırmanın birçok yolu vardır. Bilgisayarlarda, bir tarih, zaman birimi cinsinden bir sayı (Uzun veri türü) ile temsil edilir - yani, 1 Ocak 1970'den bu yana geçen milisaniye sayısı. Java'da, Date bir nesnedir, yani karşılaştırma yapmak için çeşitli yöntemler. İki tarihi karşılaştırmak için kullanılan herhangi bir yöntem, esasen iki tarihin zaman birimlerini karşılaştırmaktır.

Adım

Yöntem 1/4: karşılaştırmayı kullanma

4301351 1
4301351 1

Adım 1. karşılaştırmayı kullanın

Date nesnesi, Comparable'ı uygular, böylece 2 tarih birbiriyle doğrudan karşılaştırma yöntemiyle karşılaştırılabilir. Her iki tarih de zaman birimlerinde aynı sayıya sahipse, yöntem sıfır döndürür. İkinci tarih birinciden küçükse, sıfırdan küçük bir değer döndürülür. İkinci tarih birinciden büyükse, yöntem sıfırdan büyük bir değer döndürür. Her iki tarih de aynıysa, yöntem boş bir değer döndürür.

4301351 2
4301351 2

Adım 2. Birden çok Date nesnesi oluşturun

Karşılaştırmadan önce birden çok Date nesnesi oluşturmalısınız. Bunu yapmanın en kolay yollarından biri SimpleDateFormat sınıfını kullanmaktır. Bu sınıf, girdi tarih değerini bir Date nesnesine dönüştürmeyi kolaylaştırır.

    SimpleDateFormat sdf = yeni SimpleDateFormat("yyyy-AA-gg"). Yeni bir ''Nesne Tarihi''nde bir değer bildirmek için, tarihi oluştururken aynı tarih formatını kullanın. Tarih tarih1 = sdf.parse("1995-02-23"); //tarih1 23 Şubat 1995 Tarih tarih2 = sdf.parse("2001-10-31"); //date2, 31 Ekim 2001'dir Date date3 = sdf.parse("1995-02-23"); //date3, 23 Şubat 1995

4301351 3
4301351 3

Adım 3. Date nesnelerini karşılaştırın

Aşağıdaki kod size her durum için örnekler gösterecektir - küçüktür, eşittir ve büyüktür.

    tarih1.karşılaştır(tarih2); //tarih1 < tarih2, 0'dan küçük bir değer döndürür date2.compareTo(date1); //date2 > date1, 0'dan büyük bir değer döndürür date1.compareTo(date3); //date1 = date3, yani konsolda 0 çıktısı verecek

Yöntem 2/4: Eşittir, Sonrası ve Öncesi Kullanma

4301351 4
4301351 4

Adım 1. eşittir, after ve Before kullanın

Tarihler eşittir, after ve Before yöntemleri kullanılarak karşılaştırılabilir. İki tarih zaman açısından aynı değere sahipse, eşittir yöntemi true değerini döndürür. Aşağıdaki örnek, örnek karşılaştırma yönteminde oluşturulan Date nesnesini kullanacaktır.

4301351 5
4301351 5

Adım 2. Önceki yöntemle karşılaştırın

Aşağıdaki kod, true ve false döndüren bir örnek durumu gösterir. tarih1, tarih2'den önceki bir tarihse, Before yöntemi true değerini döndürür. Aksi takdirde, Before yöntemi false döndürür.

    System.out.print(tarih1.önce(tarih2)); // ''true'' değerini göster System.out.print(date2.before(date2)); // ''false'' değerini döndür

4301351 6
4301351 6

Adım 3. After yöntemini kullanarak karşılaştırın

Aşağıdaki kod, true ve false döndüren bir örnek durumu gösterir. tarih2, tarih1'den sonraki tarihse, after yöntemi true değerini döndürür. Aksi takdirde, after yöntemi false döndürür.

    System.out.print(date2.after(date1)); // ''true'' değerini göster System.out.print(date1.after(date2)); // ''false'' değerini göster

4301351 7
4301351 7

Adım 4. Eşittir yöntemiyle karşılaştırın

Aşağıdaki kod, true ve false döndüren bir örnek durumu gösterir. Her iki tarih de eşitse, eşittir yöntemi true değerini döndürür. Aksi takdirde, eşittir yöntemi false döndürür.

    System.out.print(date1.equals(date3)); // ''true'' değerini göster System.out.print(date1.equals(date2)); // ''false'' değerini göster

Yöntem 3/4: Sınıf Takvimini Kullanma

4301351 8
4301351 8

Adım 1. Sınıf Takvimini kullanın

Calendar sınıfında ayrıca, Date sınıfı için daha önce açıklananlarla aynı şekilde çalışan CompareTo, equals, after ve Before yöntemleri bulunur. Bu nedenle, tarih bilgisi bir Sınıf Takviminde saklanıyorsa, yalnızca bir karşılaştırma yapmak için tarihi çıkarmanız gerekmez.

4301351 9
4301351 9

2. Adım. Bir Takvim örneği oluşturun

Sınıf Takviminde yöntemleri kullanmak için birden çok Takvim örneği oluşturmanız gerekir. Neyse ki, daha önce oluşturulmuş bir Date örneğindeki değerleri kullanabilirsiniz.

    Takvim cal1 = Calendar.getInstance(); //cal1 bildir Calendar cal2 = Calendar.getInstance(); // cal2 bildir Calendar cal3 = Calendar.getInstance(); // cal3 bildir cal1.setTime(date1); //tarihi cal1 içine koy cal2.setTime(date2); cal3.setTime(tarih3);

4301351 10
4301351 10

Adım 3. Before yöntemini kullanarak cal1 ve cal2'yi karşılaştırın

Aşağıdaki kod, tr değerini çıkaracaktır.

    System.out.print(cal1.before(cal2)); //''true'' değerini döndürecek

4301351 11
4301351 11

Adım 4. cal1 ve cal2'yi after yöntemini kullanarak karşılaştırın

Aşağıdaki kod false döndürür çünkü cal1 cal2'den önceki tarihtir.

    System.out.print(cal1.after(cal2)); // ''false'' değerini döndür

4301351 12
4301351 12

Adım 5. Eşittir yöntemini kullanarak cal1 ve cal2'yi karşılaştırın

Aşağıdaki kod, true ve false döndüren bir örnek durum gösterecektir. Durum, karşılaştırılmakta olan Takvim örneğine bağlıdır. Aşağıdaki kod, "true" değerini, ardından bir sonraki satırda "false" değerini döndürür.

    System.out.println(cal1.equals(cal3)); // ''doğru'' değerini döndür: cal1 == cal3 System.out.print(cal1.equals(cal2)); // ''yanlış'' değerini döndür: cal1 != cal2

Yöntem 4/4: getTime'ı kullanma

4301351 13
4301351 13

Adım 1. getTime'ı kullanın

Önceki iki yöntemin okunması daha kolay ve tercih edilebilir olsa da, iki tarihin zaman birimi değerlerini de doğrudan karşılaştırabilirsiniz. Bu şekilde 2 ilkel veri türünü karşılaştıracaksınız, böylece "" ve "==" işlenenlerini kullanabilirsiniz.

4301351 14
4301351 14

Adım 2. Uzun sayı biçiminde bir zaman nesnesi oluşturun

Tarihleri karşılaştırabilmeniz için önceden oluşturulmuş Date nesnesinden bir Uzun Tamsayı değeri oluşturmanız gerekir. Neyse ki, getTime() yöntemi bunu sizin için yapacak.

    uzun zaman1 = getTime(tarih1); //tarih1'in ilkel zaman1'ini bildir uzun zaman2 = getTime(date2); // tarih2'nin ilkel time2 değerini bildir

4301351 15
4301351 15

Adım 3. Karşılaştırmadan daha azını gerçekleştirin

Bu iki tamsayı değerini karşılaştırmak için küçüktür (<) işlenenini kullanın. time1 time2'den küçük olduğu için ilk mesaj görünecektir. Else ifadesi sözdizimini tamamlamak için eklenmiştir.

    if(time1 < time2){ System.out.println("tarih1, tarih2'den önceki tarihtir"); //gösterilecek çünkü time1 < time2 } else{ System.out.println("tarih1, tarih2'den önceki bir tarih değil"); }

4301351 16
4301351 16

Adım 4. Karşılaştırmadan daha fazlasını gerçekleştirin

Bu iki tamsayı değerini karşılaştırmak için büyüktür (>) işlenenini kullanın. time1 time2'den büyük olduğu için ilk mesaj görünecektir. Else ifadesi sözdizimini tamamlamak için eklenmiştir.

    if(time2 > time1){ System.out.println("tarih2, tarih1'den sonraki tarihtir"); //gösterilecek çünkü time2 > time1 } else{ System.out.println("tarih2, tarih1'den sonraki tarih değil"); }

4301351 17
4301351 17

Adım 5. Bir eşittir karşılaştırması yapın

Bu iki tamsayıyı karşılaştırmak için değerlerin (==) eşitliğini kontrol etmek için işlenen işlevini kullanın. time1 time3'e eşit olduğundan, ilk mesaj görünecektir. Program akışı else ifadesine girerse, iki zamanın aynı değere sahip olmadığı anlamına gelir.

    if(time1 == time2){ System.out.println("iki tarih de aynı"); } else{ System.out.println("1. ile 2. aynı değil"); //gösterilecek çünkü zaman1 !=zaman2 }

Önerilen: