Develop

[java] 날짜 계산 (Date, SimpleDateFormat)

by hooni posted Apr 23, 2013
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
date.set(y,m,d...);
이런 방법이 없어짐 ㅠㅠ

두 날짜의 차이를 얻고 싶으시면, 그렇게 문자열에서 부분만을 뽑아서 계산하는 것보다는 Date 클래스를 이용하는 것이 더 깔끔하고 바람직한 방법입니다. 

다음 코드를 참고하세요.
코드를 보시면 충분히 이해하실 것이라 생각됩니다. 수행하면 결과값이 5가 나옵니다. 

SimpleDateFormat는 지정한 형태로 들어온 문자열을 Date 객체로 바꿔주는 역할을 합니다.
그리고, 이렇게 바뀌어진 두 날짜의 차이를 millisecond 단위로 구하고 이것을 다시 일단위로 바꾸는 것이지요.
import java.text.SimpleDateFormat;
import java.util.Date; 

public class DiffOfDate
{
  public static void main(String[] args) throws Exception
  {
    System.out.println(diffOfDate("20031028", "20031102"));
  }

  public static long diffOfDate(String begin, String end) throws Exception
  {
    SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");

    Date beginDate = formatter.parse(begin);
    Date endDate = formatter.parse(end);

    long diff = endDate.getTime() - beginDate.getTime();
    long diffDays = diff / (24 * 60 * 60 * 1000);

    return diffDays;
  }
}