// 원본 코드 출처 : http://kkansooni.egloos.com/4231236
import java.util.Calendar;
public class DateDiff {
public static int GetDifferenceOfDate(int nYear1, int nMonth1, int nDate1,int nYear2, int nMonth2, int nDate2) {
Calendar cal = Calendar.getInstance();
int nTotalDate1 = 0, nTotalDate2 = 0, nDiffOfYear = 0, nDiffOfDay = 0;
if (nYear1 > nYear2) {
for (int i = nYear2; i < nYear1; i++) {
cal.set(i, 12, 0);
nDiffOfYear += cal.get(Calendar.DAY_OF_YEAR);
}
nTotalDate1 += nDiffOfYear;
} else if (nYear1 < nYear2) {
for (int i = nYear1; i < nYear2; i++) {
cal.set(i, 12, 0);
nDiffOfYear += cal.get(Calendar.DAY_OF_YEAR);
}
nTotalDate2 += nDiffOfYear;
}
cal.set(nYear1, nMonth1 - 1, nDate1);
nDiffOfDay = cal.get(Calendar.DAY_OF_YEAR);
nTotalDate1 += nDiffOfDay;
cal.set(nYear2, nMonth2 - 1, nDate2);
nDiffOfDay = cal.get(Calendar.DAY_OF_YEAR);
nTotalDate2 += nDiffOfDay;
return nTotalDate1 - nTotalDate2;
}
public static void main(String args[]) {
// System.out.println("" + GetDifferenceOfDate(2000, 6, 15, 1999, 8, 23));
System.out.println("" + GetDifferenceOfDate(2010, 1, 1, 2009, 12, 31));
}
}
아래 코드는 전체는 해보지 않았으나 아래쪽 일부코드 참고
날짜간 차이를 구하려면 다음과 같이 해보세요.
// Calendar 객체 두 개를 만듭니다.
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
// 각각에 날짜를 설정해 줍니다. 파라미터는 차례대로 년도, 월, 일 입니다.
// 여기에서 주의할 점은 1월은 0, 2월은 1, 즉 월보다 1 작은 숫자를 입력해 주셔야 합니다.
// 날짜와 년도는 상관 없습니다.
c1.set(2005, 11, 19);
c2.set(2006, 0, 1);
// 각각의 Calendar로 Date 객체를 얻어 옵니다.
Date d1 = c1.getTime();
System.out.println("D1: " + d1);
Date d2 = c2.getTime();
System.out.println("D2: " + d2);
// 날짜는 long으로 표현됩니다. 두 날짜 사이의 시간을 구합니다.
long between = d2.getTime() - d1.getTime();
// 두 날짜 사이의 일 수를 구합니다. 하루는 86400초이고 1초는 1000밀리초이기 때문에
// 위에서 구한 between을 86400000으로 나눕니다.
System.out.println("result: " + (between / 86400000));