import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.ArrayList;

public class DateUtil {
public static void main(String[] args) {
DateUtil du = new DateUtil();

String[] days = du.getDiffDays("20070220", "20070302");

for( int i = 0; i < days.length; i++ ) {
System.out.println( days[i] );
}
}

/**
* 시작일부터 종료일까지 사이의 날짜를 배열에 담아 리턴 ( 시작일과 종료일을 모두 포함한다 )

* @param fromDate
* yyyyMMdd 형식의 시작일
* @param toDate
* yyyyMMdd 형식의 종료일
* @return yyyyMMdd 형식의 날짜가 담긴 배열
*/
public static String[] getDiffDays(String fromDate, String toDate) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");

Calendar cal = Calendar.getInstance();

try {
cal.setTime(sdf.parse(fromDate));
} catch (Exception e) {
}

int count = getDiffDayCount(fromDate, toDate);

// 시작일부터
cal.add(Calendar.DATE, -1);

// 데이터 저장
ArrayList<String> list = new ArrayList<String>();

for (int i = 0; i <= count; i++) {
cal.add(Calendar.DATE, 1);

list.add(sdf.format(cal.getTime()));
}

String[] result = new String[list.size()];

list.toArray(result);

return result;
}

/**
* 두날짜 사이의 일수를 리턴

* @param fromDate
* yyyyMMdd 형식의 시작일
* @param toDate
* yyyyMMdd 형식의 종료일
* @return 두날짜 사이의 일수
*/
public static int getDiffDayCount(String fromDate, String toDate) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");

try {
return (int) ((sdf.parse(toDate).getTime() - sdf.parse(fromDate)
.getTime()) / 1000 / 60 / 60 / 24);
} catch (Exception e) {
return 0;
}
}
}

'java' 카테고리의 다른 글

List 중복제거  (0) 2015.11.03
이클립스 jsp 오류시 jsp파일 바로 확인하기  (0) 2015.10.28
파라미터 전체확인  (0) 2015.09.23
List 정렬하기  (0) 2015.04.06
계행문자열 공백처리  (0) 2015.03.18
Posted by 우주정복☆
,