barusan browsing bagaimana caranya mendapatkan jumlah hari diantara 2 tanggal, contohnya :
tanggal_a : 27 – 11 – 1989
tanggal_b : 29 – 11 – 1989
nah, dari 2 tanggal diatas, seharusnya tercetak “2 Hari” karena dari tanggal_b ke tanggal_a berjarak 2 hari, disini saya tidak menggunakan library apa pun, langsung aja source code nya, sebelum sayanya lupa,hehe :
import java.util.*;
import java.text.*;
public class CobaKalender{
private Calendar awal = Calendar.getInstance();
private Calendar akhir = Calendar.getInstance();
private String tanggal1 = "28-11-2009",
tanggal2 = "02-12-2009";
private SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
public CobaKalender(){
Date a = null;
Date b = null;
//merubah string ke date menggunakan method parse
try {
a = sdf.parse(tanggal1);
b = sdf.parse(tanggal2);
} catch (ParseException e) {
e.printStackTrace();
}
//panggil metod HitungHari untuk menghitung hari
int hari = HitungHari(a,b);
//cetak
System.out.println("Selisih : " + hari + " hari");
}
public int HitungHari(Date a, Date b){
int perbedaan = 0;
int jumlahHari = 0;
if (a.compareTo(b) < 0){
awal.setTime(a);
akhir.setTime(b);
}else{
awal.setTime(b);
akhir.setTime(a);
}
//membandingkan tahun date a dan tahun date b
while (awal.get(Calendar.YEAR) != akhir.get(Calendar.YEAR)){
perbedaan = 365 * (akhir.get(Calendar.YEAR) -- awal.get(Calendar.YEAR));
jumlahHari += perbedaan;
awal.add(Calendar.DAY_OF_YEAR, perbedaan);
}
if (awal.get(Calendar.DAY_OF_YEAR) != akhir.get(Calendar.DAY_OF_YEAR)){
perbedaan = akhir.get(Calendar.DAY_OF_YEAR) -- awal.get(Calendar.DAY_OF_YEAR);
jumlahHari += perbedaan;
awal.add(Calendar.DAY_OF_YEAR, perbedaan);
}
return(jumlahHari);
}
public static void main(String[] args){
new CobaKalender();
}
}
dan hasilnya akan seperti ini :
Selisih : 4 hari
//(^_^)V hehehe
selesai deh, gampang kan :P mungkin pembaca punya cara yang lebih simple dan singkat?? silahkan di share, :D



6 comments
ai
17/12/2009 at 08:47 (UTC 7)
nice sharing….makasih banget…semoga bermanfaat :D
.-= ai´s last blog ..Peraturan Itu Untuk Siapa? =-.
Kus Andriadi :
iya, sama2…:D
[Reply]
ridu
17/12/2009 at 14:39 (UTC 7)
wuis mantabs nih programer dari BL :D
Kus Andriadi :
huaa, bang ridu lebay nih,,hihi…
[Reply]
Kangedo
21/06/2010 at 14:43 (UTC 7)
Gan kalo private SimpleDateFormat sdf = new SimpleDateFormat(“dd-MM-yyyy”);
(“dd-MM-yyyy”) diubah menjadi (“dd/MM/yyyy”) bisa ga???
[Reply]
Kus Andriadi Reply:
June 21st, 2010 at 15:43
bisa gan :)
[Reply]
dariuuz
03/02/2011 at 16:59 (UTC 7)
nice inpoh gan. gw lg nyari sourcecode utk menghitung usia. bisa nih di olah lbh lanjut… :D
[Reply]
Kus Andriadi Reply:
February 4th, 2011 at 17:21
yoi makasih :)
[Reply]