예전에 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개월 전이던지 원하는 날짜를 얻을 수 있겠죠.
'TDD Project' 카테고리의 다른 글
좋은 Test Strategy 문서를 만들기 위한 7가지 요소 -2- (0) | 2014.12.10 |
---|---|
좋은 Test Strategy 문서를 만들기 위한 7가지 요소 -1- (0) | 2014.12.10 |
Automated Testing Advantages, Disadvantages and Guidelines (1) | 2014.07.02 |
TDD Project Production Deployment 경험.... (0) | 2014.03.17 |
[JAVA] getInstance() 와 관련해서.... (2) | 2014.03.11 |
미국 IT 프로젝트 참여 과정과 개발환경 세팅하기 (0) | 2013.11.15 |
Jenkins 에 대한 개요 (0) | 2013.11.08 |
새로운 프로젝트, 새로운 기술, 배울것들이 많아서 좋다. (1) | 2013.11.07 |
JUnit 4 와 TestNG 비교하기 (0) | 2013.11.03 |
TestNG Tutorial 정리 02 (0) | 2013.11.01 |