블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 받은 트랙백

글 보관함

calendar

        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

JAVA DATE 함수 사용. 날짜 계산하기

2014.01.27 07:25 | Posted by 솔웅


예전에 JAVA DATE 함수 사용법과 일/월/년 계산하는 로직을 블로그에 정리했던것 같은데...


얼마전에 월 계산하는 로직을 구현해야 되서 찾아보니까 없더군요.


이번 기회에 정리해 두어야 겠습니다.



이번에 제가 구현해야할 로직은 웹 페이지에서 유저가 두 날짜 범위를 입력하는 것을 Selenium WebDriver로 대신 처리하는 겁니다.


3개월 전 날짜와 오늘 날짜를 넣으면 됩니다.


    public static void enterDates() throws Exception {

        Date date = new Date();
        SimpleDateFormat sdformat = new SimpleDateFormat("MM/dd/yyyy");

        Date before3Mon = addMonth(date,-3);

        String today = sdformat.format(date);
        String before3Months = sdformat.format(before3Mon);
    }


today를 구하는 것은 쉽습니다.

첫번째는 오늘 날짜를 구하는 거고 두번째 줄은 날짜 포맷을 정해주는 겁니다.

월일년으로 포맷을 정했습니다.


그러면 date에는 오늘 날짜가 들어가 있습니다. Date type으로요.

밑에서 두번째 줄을 보면 만들어 두었던 Date Format을 사용해서 오늘 날짜를 월/일/년 포맷으로 만들어서 String으로 저장해 두는 부분이 나옵니다.



그 전줄에는 addMonth() 를 호출해서 3개우러 전 날짜를 date  포맷으로 받아오는 부분이 있습니다.

이 addMonth() 메소드를 보겠습니다.


    public static Date addMonth(Date date, int months) {
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        cal.add(Calendar.MONTH, months);
        return cal.getTime();
    }


이 메소드는 Date 와 int 값을 파라미터로 받습니다.

그 내용을 보면..

처음에 Calendar 인스턴스를 변수에 담습니다.


이 Calendar 메소드가 날짜 계산하기 위해 자바에서 사용하는 API 입니다.

이 Calendar API의 setTime 메소드를 사용해서 전달받은 date를 세팅합니다.

그리고 add() 메소드를 사용해서 월을 계산합니다.



위에서 이 함수를 호출할 때 오늘 날짜와 -3을 인수로 전달했습니다.

이렇게 되면 오늘로부터 3개월 전의 날짜를 구할 수 있습니다.

이 값을 getTime() 메소드를 사용해서 Date 형식으로 만든 다음에 return 을 합니다.


이렇게 하면 오늘로부터 3개월 전 날짜를 구할 수 있습니다.

인수를 달리하면 1달 후 던지 10개월 전이던지 원하는 날짜를 얻을 수 있겠죠.




저작자 표시 비영리 동일 조건 변경 허락
신고

티스토리 툴바