자바개발을 하면서 난 날짜연산이 필요할때.
예를 들면 어제날짜가 필요한다던가 입력받은 날짜에 얼마만큼의 기간을 더하고 빼고 할때 말이다.
java.util.Date객체의 메소드들은 대부분 Deprecated되어서(API문서) setDate같은 메소드를 쓰기도 찜찜하다.
그럴땐 Calendar 객체가 아주 유용하다.

Calendar cal = Calendar.getInstance(); // 지역에 맞는 캘린더객체 생성

위와같은 코드로 쉽게 생성이 가능하다.

자 이제 날짜연산을 어떻게 할까.
이것도 매우 쉽다. add메소드를 이용한다.

cal.add(Calendar.DATE, -1); //하루 전
cal.add(Calendar.MONTH, 4); //4개월 뒤
cal.add(Calendar.WEEK_OF_YEAR, -4); //4주전

같은 방법으로 get을 사용하면 해당 값을 가져올 수 있다.

GregorianCalendar는 이외에도 유용한 메소드가 많다.
cal.getMaximum(Calendar.DAY_OF_MONTH); //현재 월의 마지막 날짜

그리고 java.util.Date객체가 필요하다면,
Date date = cal.getTime();
Date date = new Date(cal.getTimeInMillis());

등의 방법으로 가능하다.
더 많은 정보는 API문서를 참고.




License
달리 정하지 않는 한, 이 저작물 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
Except where otherwise noted, this content is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 2.0 Korea License
  1. 일퍼센트 2008.01.25 09:50 신고

    깔끔한 정리^^;

  2. 최종욱 2008.01.29 12:54 신고

    Calendar라는 Abstract Class에서 받아다 써야지 어따가 이걸 들이대! -_-+

    • Widyou 2008.01.30 08:58 신고

      난 그냥 이게 편해서 ㅋ
      isLeafYear인가 그 함수도 바로 쓸수있고

  3. 김경호 2008.12.23 10:17 신고

    제 네이버 블로그에 내용복사로 퍼갈께요~
    http://blog.naver.com/kkh2004
    잘쓰겠습니다~ ^^

    • Widyou 2008.12.29 19:43 신고

      확인했습니다.
      출처만 써주신다면 얼마든지 퍼가셔도 됩니다

+ Recent posts