Bahasa pemograman apapun yang di gunakan dalam pengembangan suatu aplikasi baik itu PHP, Java, Python, dll sering kali kita akan di hadapkan untuk pengolahan Tanggal dan Waktu. Namun pada kesempatan kali ini kita akan membahas perbandingan tanggal pada bahasa pemograman Java
.
Baiklah langsung saja, kita akan membuat 2 buah contoh kasus :
Anggap saja kita akan membuat suatu fitur Apply Voucher,
dimana Voucher
tersebut memiliki masa aktif yang hanya bisa di gunakan pada periode tertentu. Pada kasus ini kita akan dihadapkan dengan 3 buah tanggal yaitu :
A = Tanggal Reedem , B = Tanggal Awal Aktif Voucher, C = Tanggal Terakhir Aktif Voucher
Tentu saja pada saat pengguna ingin melakukan Redeem Voucher,
terlebih dahulu kita akan melakukan pengecekan apakah Voucher
tsb masih aktif atau tidak, bagaimana caranya ? Silahkan perhatikan potongan kode di bawah ini
import java.util.*; import java.text.*; public class DateDemo { public static void main(String[] args) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); Date now = new Date(); // Tanggal Hari ini String from = "01/01/2020"; String to = "31/01/2020"; String A = sdf.format(now); // Tanggal Hari ini Date B = sdf.parse(from); // Tanggal Awal Voucher Aktif Date C = sdf.parse(to); // Tanggal Terakhir Voucher Aktif if ((now.after(B) && (now.before(C))) || (A.equals(from) || A.equals(to))) { System.out.println("Voucher Aktif"); } else { System.out.println("Voucher Sudah Kadaluarsa"); } } }
Pada contoh diatas bisa dilihat ada 3 fungsi ( after, before, dan equals
) yang di gunakan untuk melakukan pengecekan, berikut ini adalah penjelasan masing-masing fungsi tsb :
now.after(B) // Cek jika tgl sekarang > B (Tanggal Awal Voucher Aktif) now.before(C) // Cek jika tgl sekarang < C (Tanggal Akhir Voucher Aktif) now.after(B) && (now.before(C)) // Jadi, jika tanggal hari ini ( > ) "01/01/2020" dan ( < ) "31/01/2020", berarti Voucher masih aktif
Dari penjelasan di atas kita sudah bisa melakukan validasi apakah tgl rendeem voucher
lebih besar dari ( > ) "01/01/2020" dan lebih kecil dari ( < ) "31/01/2020", artinya Voucher tsb akan di nyatakan valid jika di gunakan antara tgl 02 - 30 Jan 2020.
Namun bagaimana jika di gunakan pada tgl "01/01/2020" atau "31/01/2020" , disinilah kita menggunakan fungsi equals
.
A.equals(from) || A.equals(to) // Berfungsi utk melakukan pengecekan apakah tgl rendeem sama dg tgl awal atau sama dengan tgl akhir.
Jadi fungsi if pada kode di atas akan menghasilkan output "Voucher Aktif" apabila voucher digunakan antara tgl "02 - 30 /01/2020" atau digunakan pd tgl "01/01/2020" atau "31/01/2020".
Pada contoh kasus ke dua ini kita akan mencari apabila Tanggal A sama dengan tanggal B atau C , namun kali ini kita tidak akan menggunakan fungsi equals
seperti contoh kasus sebelumnya.