Selisih tanggal dengan jCalendar

Baiklah akhirnya kita bisa sharing2 ilmu kembali…. nah pada topik kali ini saya akan menyajikan materi tentang konsep Pengurangan tanggal dengan menggunakan JCalender.  Nah konsep ini biasanya sering kita temui pada kasus peminjaman baik di pustaka, rental dvd, dlsb. yang nantinya kan mendapatkan jumlah hari/lamapinjam dari hasil pengurangan 2 variabel tanggal.
OK Kita langsung saja ke TKP untuk mencontohkan kasusnya….
Pada materi ini saya menggunakan Neatbean (sebagai java editor) + JCalender komponen tambahan yang kita include kan ke dalam Neatbean……..

1. Silahkan tambahkan project baru pada Jendela Neatbean anda (nama project tentukan sendiri……
2.  Tambahkan sebuah form pada project tersebut (namanya juga silahkan tentukan sendiri hehehe…)
3. Berikut tampilan desain form yang dimaksudkan…..









Detail :
kita ambil contoh sederhana dengan mengurangkan tanggal pinjam dengan tanggal kembali sehingga didapatkan lama pinjam …. komponennya sbb:
- Dua Buah JCalender dengan variabele name  txttglpinjam dan txttglkembali
- sebuah textfield dengan nama txtlamapinjam
- sebuah JButton dengan variabel name  :tmblproses

4. Memasukkan listing Program……
Kita sampai pada tahapan akhir yakni memasukkan script program
a. Import yang kita butuhkan
import javax.swing.*;
import java.text.SimpleDateFormat;
import java.util.Date;
b. defenisikan variabel yang nanti akan kita gunakan…..
String tanggalpeminjaman,tanggalpengembalian;
private int tglM,blnM,thnM,tglK;
private Date tglpinjam;
private Date tglhrskmbli;
private Date tglkmbli;
private String tanggalHrsKembali;
private String tanggalKembali;
private int iBulan;
private String Sbulan;
private String Kbulan;
private int inBulan;
c.       Untuk mendapatkan nilai tglpinjam dari jcalender txttglpinjam tambahkan scrip sbb:
private void txttglpinjamPropertyChange(java.beans.PropertyChangeEvent evt) {
// TODO add your handling code here:
if (txttglpinjam.getDate() != null) {
SimpleDateFormat Format = new SimpleDateFormat(“dd MMM yyyy”);
tanggalpeminjaman = Format.format(txttglpinjam.getDate());
}
}
d. Begitu juga pada tanggal kembali lakukan hal yang sama pada proses c untuk merubah properti txttanggalkembali :
private void txttglkembaliPropertyChange(java.beans.PropertyChangeEvent evt) {
// TODO add your handling code here:
if (txttglkembali.getDate() != null) {
SimpleDateFormat Format = new SimpleDateFormat(“dd MMM yyyy”);
tanggalpengembalian = Format.format(txttglkembali.getDate());
}
}
e. Ok pada tombol Proses dengan even action perfomed tambahkan script berikut untuk menghitung lama pinjam.
private void tmblprosesActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
int tahunH = Integer.parseInt(tanggalpeminjaman.substring(7, 11));
int hariH = Integer.parseInt(tanggalpeminjaman.substring(0, 2));
Sbulan = (String) tanggalpeminjaman.substring(3, 6);
if (Sbulan.compareTo(“Jan”) == 0) {
iBulan = 1;
} else if (Sbulan.compareTo(“Feb”) == 0) {
iBulan = 2;
} else if (Sbulan.compareTo(“Mar”) == 0) {
iBulan = 3;
} else if (Sbulan.compareTo(“Apr”) == 0) {
iBulan = 4;
} else if (Sbulan.compareTo(“May”) == 0) {
iBulan = 5;
} else if (Sbulan.compareTo(“Jun”) == 0) {
iBulan = 6;
} else if (Sbulan.compareTo(“Jul”) == 0) {
iBulan = 7;
} else if (Sbulan.compareTo(“Aug”) == 0) {
iBulan = 8;
} else if (Sbulan.compareTo(“Sep”) == 0) {
iBulan = 9;
} else if (Sbulan.compareTo(“Oct”) == 0) {
iBulan = 10;
} else if (Sbulan.compareTo(“Nov”) == 0) {
iBulan = 11;
} else {
iBulan = 12;
}
int tahunK = Integer.parseInt(tanggalpengembalian.substring(7, 11));
int hariK = Integer.parseInt(tanggalpengembalian.substring(0, 2));
Kbulan = (String) tanggalpengembalian.substring(3, 6);
if (Kbulan.compareTo(“Jan”) == 0) {
inBulan = 1;
} else if (Kbulan.compareTo(“Feb”) == 0) {
inBulan = 2;
} else if (Kbulan.compareTo(“Mar”) == 0) {
inBulan = 3;
} else if (Kbulan.compareTo(“Apr”) == 0) {
inBulan = 4;
} else if (Kbulan.compareTo(“May”) == 0) {
inBulan = 5;
} else if (Kbulan.compareTo(“Jun”) == 0) {
inBulan = 6;
} else if (Kbulan.compareTo(“Jul”) == 0) {
inBulan = 7;
} else if (Kbulan.compareTo(“Aug”) == 0) {
inBulan = 8;
} else if (Kbulan.compareTo(“Sep”) == 0) {
inBulan = 9;
} else if (Kbulan.compareTo(“Oct”) == 0) {
inBulan = 10;
} else if (Kbulan.compareTo(“Nov”) == 0) {
inBulan = 11;
} else {
inBulan = 12;
}
int hasilHari = hariK – hariH;
int hasilBulan = (inBulan – iBulan) * 30;
int hasiltahun = (tahunK – tahunH) * 365;
int totalwaktu = (hasilHari + hasilBulan + hasiltahun);
txtlamapinjam.setText(String.valueOf(totalwaktu));
}
OK Silahkan dicoba….!!! Have A Nice Day…..:)