Kusandriadi.com I Just Want to Share

[Java] get day between 2 Dates

12.16.2009 · Posted in Campus, IT dan Pemrograman, Java, Lain - lain

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

4 Responses to “[Java] get day between 2 Dates”

  1. nice sharing….makasih banget…semoga bermanfaat :D
    ai´s last blog ..Peraturan Itu Untuk Siapa?

    Kus Andriadi :
    iya, sama2…:D
    My ComLuv Profile

    [Reply]

  2. wuis mantabs nih programer dari BL :D

    Kus Andriadi :
    huaa, bang ridu lebay nih,,hihi…

    [Reply]

  3. Gan kalo private SimpleDateFormat sdf = new SimpleDateFormat(“dd-MM-yyyy”);
    (“dd-MM-yyyy”) diubah menjadi (“dd/MM/yyyy”) bisa ga???
    Kangedo´s last blog ..Tips: Text Chat YM tidak TampilMy ComLuv Profile

    [Reply]

    Kus Andriadi Reply:

    bisa gan :)

    [Reply]

Leave a Reply

CommentLuv Enabled

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word

Get Adobe Flash playerPlugin by wpburn.com wordpress themes