Ada berbagai cara untuk membandingkan tanggal Java. Secara internal, tanggal direpresentasikan sebagai titik (panjang) dalam waktu -- jumlah milidetik yang telah berlalu sejak 1 Januari 1970. Di Jawa, Date adalah sebuah objek, yang berarti mencakup beberapa metode untuk perbandingan. Metode apa pun untuk membandingkan dua tanggal pada dasarnya akan membandingkan waktu tanggal.
Langkah
Metode 1 dari 4: Menggunakan compareTo
Langkah 1. Gunakan compareTo
Date mengimplementasikan Comparable sehingga dua tanggal dapat dibandingkan secara langsung dengan metode compareTo. Jika tanggal untuk titik waktu yang sama, metode mengembalikan nol. Jika tanggal yang dibandingkan sebelum argumen tanggal, nilai yang kurang dari nol akan dikembalikan. Jika tanggal yang dibandingkan setelah argumen tanggal, nilai yang lebih besar dari nol akan dikembalikan. Jika tanggalnya sama, nilai 0 dikembalikan.
Langkah 2. Buat objek tanggal
Anda perlu membuat setiap objek tanggal sebelum Anda dapat mulai membandingkannya. Salah satu cara untuk melakukannya adalah dengan menggunakan kelas SimpleDateFormat. Ini memungkinkan entri nilai tanggal dengan mudah ke objek tanggal.
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //Untuk mendeklarasikan nilai pada objek tanggal baru. gunakan format tanggal yang sama saat membuat tanggal Date date1 = sdf.parse("1995-02-23"); //date1 adalah 23 Februari 1995 Tanggal date2 = sdf.parse("2001-10-31"); //date2 adalah 31 Oktober 2001 Tanggal date3 = sdf.parse("1995-02-23"); //tanggal3 adalah 23 Februari 1995
Langkah 3. Bandingkan objek tanggal
Kode di bawah ini akan menunjukkan setiap kasus -- kurang dari, sama, dan lebih besar dari.
date1.compareTo(date2); //date1 < date2, mengembalikan kurang dari 0 date2.compareTo(date1); //date2 > date1, mengembalikan lebih besar dari 0 date1.compareTo(date3); //date1 = date3, jadi akan mencetak 0 ke konsol
Metode 2 dari 4: Menggunakan Persamaan, Setelah, dan Sebelum
Langkah 1. Gunakan equals, after dan before
Tanggal dapat dibandingkan dengan metode yang sama, setelah dan sebelum. Jika dua tanggal untuk titik waktu yang sama, metode equals akan mengembalikan nilai true. Contoh akan menggunakan tanggal yang dibuat sebelumnya dari metode compareTo.
Langkah 2. Bandingkan menggunakan metode sebelumnya
Kode di bawah ini menunjukkan kasus benar dan salah. Jika date1 sebelum date2, sebelum mengembalikan true. Jika tidak, sebelum mengembalikan false.
System.out.print(date1.before(date2)); //mencetak benar System.out.print(date2.before(date2)); //cetak salah
Langkah 3. Bandingkan menggunakan metode after
Kode di bawah ini menunjukkan kasus benar dan salah. Jika date2 setelah date1, setelah mengembalikan true. Jika tidak, setelah mengembalikan false.
System.out.print(date2.after(date1));//mencetak benar System.out.print(date1.after(date2));//mencetak salah
Langkah 4. Bandingkan menggunakan metode equals
Kode di bawah ini menunjukkan kasus benar dan salah. Jika tanggalnya sama, equals mengembalikan true. Jika tidak, equals mengembalikan false.
System.out.print(date1.equals(date3));//mencetak benar System.out.print(date1.equals(date2));//mencetak salah
Metode 3 dari 4: Menggunakan Kelas Kalender
Langkah 1. Gunakan kalender
Kelas kalender juga memiliki metode compareTo, equals, after dan before yang bekerja dengan cara yang sama seperti yang dijelaskan di atas untuk kelas tanggal. Jadi jika informasi tanggal diadakan di kalender, tidak perlu mengekstrak tanggal hanya untuk melakukan perbandingan.
Langkah 2. Buat instance Kalender
Untuk menggunakan metode Kalender, Anda memerlukan beberapa instance Kalender. Untungnya, Anda bisa mengambil waktu dari instance Date yang sudah dibuat.
Kalender cal1 = Kalender.getInstance(); //mendeklarasikan cal1 Kalender cal2 = Calendar.getInstance(); //mendeklarasikan cal2 Kalender cal3 = Calendar.getInstance(); //deklarasikan cal3 cal1.setTime(date1); //menerapkan tanggal ke cal1 cal2.setTime(date2); cal3.setTime(tanggal3);
Langkah 3. Bandingkan cal1 dan cal2 menggunakan sebelumnya
Kode di bawah ini harus benar karena cal1 sebelum cal2.
System.out.print(cal1.before(cal2)); //akan mencetak true
Langkah 4. Bandingkan cal1 dan cal2 menggunakan after
Kode di bawah ini harus dicetak salah karena cal1 sebelum cal2.
System.out.print(cal1.after(cal2)); //cetak salah
Langkah 5. Bandingkan cal1 dan cal2 menggunakan equals
Kode di bawah ini akan menunjukkan contoh kasus benar dan salah. Kondisi tergantung pada contoh kalender yang dibandingkan. Kode harus mencetak "benar", lalu "salah" pada baris berikutnya.
System.out.println(cal1.equals(cal3)); //mencetak true: cal1 == cal3 System.out.print(cal1.equals(cal2)); //mencetak salah: cal1 != cal2
Metode 4 dari 4: Menggunakan getTime
Langkah 1. Gunakan getTime
Dimungkinkan juga untuk secara langsung membandingkan titik waktu dari dua tanggal, meskipun salah satu pendekatan sebelumnya cenderung lebih mudah dibaca dan lebih disukai. Ini akan menjadi perbandingan dua tipe data primitif, sehingga dapat dilakukan dengan "", dan "==".
Langkah 2. Buat objek waktu lama
Sebelum Anda dapat membandingkan tanggal, Anda harus membuat bilangan bulat panjang dengan data dari objek Tanggal yang dibuat sebelumnya. Untungnya, metode getTime() akan melakukan sebagian besar pekerjaan untuk Anda.
lama waktu1 = getTime(tanggal1); // mendeklarasikan primitif time1 dari date1 long time2 = getTime(date2); //mendeklarasikan waktu2 primitif dari tanggal2
Langkah 3. Lakukan perbandingan kurang dari
Gunakan simbol kurang dari (<) untuk membandingkan dua nilai bilangan bulat ini. Karena time1 kurang dari waktu 2, pesan pertama harus dicetak. Pernyataan else disertakan untuk sintaks yang tepat.
if(time1 < time2){ System.out.println("tanggal1 sebelum tanggal2"); //akan mencetak sejak time1 <time2 } else{ System.out.println("tanggal1 tidak sebelum tanggal2"); }
Langkah 4. Lakukan perbandingan yang lebih besar dari
Gunakan simbol lebih besar dari (>) untuk membandingkan dua nilai bilangan bulat ini. Karena waktu1 lebih besar dari waktu 2, pesan pertama harus dicetak. Pernyataan else disertakan untuk sintaks yang tepat.
if(time2 > time1){ System.out.println("date2 setelah date1"); //akan mencetak sejak waktu2 > waktu1 } else{ System.out.println("tanggal2 tidak setelah tanggal1"); }
Langkah 5. Lakukan perbandingan yang sama
Gunakan simbol untuk memeriksa kesetaraan (==) untuk membandingkan dua nilai bilangan bulat ini untuk kesetaraan. Karena time1 sama dengan time3, pesan pertama harus dicetak. Jika program sampai ke pernyataan lain, itu berarti waktunya tidak sama.
if(time1 == time2){ System.out.println("tanggal sama"); } else{ System.out.println("tanggal tidak sama"); //akan mencetak sejak time1 != time2 }