• Jadilah orang yang sesederhana mungkin yang kamu bisa
  • Jadilah orang yang sesederhana mungkin yang kamu bisa
  • Jadilah orang yang sesederhana mungkin yang kamu bisa
  • Jadilah orang yang sesederhana mungkin yang kamu bisa

Search

Loading...

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…..:)

Related Post



15 comments:

  1. mau nanya kalo mencari tanggal jatuh tempo gimana ea gan??

    ReplyDelete
  2. @Anonim : bisa, tinggal masukin logikanya aja mau gimana :D

    ReplyDelete
  3. kalau untuk validasi tanggal yang di database tidak boleh sama pada jcalendar yg kita pilih bagaimana tuh kak caranya??
    mohon pencerahannya

    ReplyDelete
  4. @hamdy : lah maksudnya? Kok yang kita inputin beda sama yang disimpan di database?

    ReplyDelete
  5. maksudnya, saya membuat program untuk penyewaan tempat, otomatis tempat dan tanggal yang sudah di booking tidak boleh ada yang boking lagi kan, nah saya bingung untuk membuat validasinya kak, saya memakai jcalendar..
    mohon bantuannya kak....
    trimakasih

    ReplyDelete
  6. kalo buat selisih jam gmna ? mksh

    ReplyDelete
  7. itu kan pake jcalender klo buat jam pake apa ? sama
    mau tanya buat jam pake gatDate ko ga bisa ya ?
    mksh

    ReplyDelete
  8. int hasilBulan = (inBulan – iBulan) * 30;
    int hasiltahun = (tahunK – tahunH) * 365;

    tu 30 dan 365 buat apa ya gan?

    ReplyDelete
  9. gan aq mau bikin aplikasi jatuh tempo sama kyk gini,bedanya aq mau pakek 1 jdatechooser nah nantinya hanya bulan tahunnya saja yg diambil,shg bisa ditambhkan 2 bulan gtu ja,gmn y gan???

    ReplyDelete
  10. mantap gan,, terima kasih atas ilmunya , bermanfaat sekali buat saya :)

    ReplyDelete
  11. kog hasil lama pinjam selalu 0 gan,..??? :o

    ReplyDelete
  12. gan gan kalo fungsi jdatechooser1 biar ngambil tanggal hari ini kok jadi eror ya?

    ReplyDelete
  13. kalo mau nampilin lama pinjam tanpa harus mencet tombol proses gimana om ? mohon bantuannya :D

    ReplyDelete

Copyright © 2015 priawadi.com All Rights Reserved.