본문 바로가기
컴퓨터관련

Java - 시작일과 종료일 사이의 날짜 구하기

by 기록이답이다 2016. 1. 20.
반응형

java의 Calendar 를 이용하여 시작 날짜와 종료날짜 사이의 날짜들을 가져오기

Oracle의 connect by 를 이용해도 되는데 이번에는 java를 이용해 봤다.

코드는 아래와 같다.

 

 

import java.text.SimpleDateFormat;
import java.util.Date;

import java.util.Calendar;

public class DuringDateTest {
	public static void main(String[] args) {
		String startDt = "20151031";
		int endDt = 20151103;
		
		int startYear = Integer.parseInt(startDt.substring(0,4));
		int startMonth= Integer.parseInt(startDt.substring(4,6));
		int startDate = Integer.parseInt(startDt.substring(6,8));

		Calendar cal = Calendar.getInstance();
		
		// Calendar의 Month는 0부터 시작하므로 -1 해준다.
		// Calendar의 기본 날짜를 startDt로 셋팅해준다.
		cal.set(startYear, startMonth -1, startDate);
		
		while(true) {
			// 날짜 출력
			System.out.println(getDateByString(cal.getTime()));
			
			// Calendar의 날짜를 하루씩 증가한다.
			cal.add(Calendar.DATE, 1); // one day increment
			
			// 현재 날짜가 종료일자보다 크면 종료  
			if(getDateByInteger(cal.getTime()) > endDt) break;
		}
		System.out.println("bye!!");
	}
	
	public static int getDateByInteger(Date date) {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
		return Integer.parseInt(sdf.format(date));
	}
	
	public static String getDateByString(Date date) {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		return sdf.format(date);
	}
}

 

 

결과는 아래와 같다.

 

 

 

반응형