[인터돌™] 공부 해보자!! 열심히~~~

반응형
// 원본 코드 출처 : 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));

[출처] 자바 날짜간 차이|작성자 pleades7




이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band