특정날짜구하기같은 경우 쿼리로 구해오는 경우가 많은데
어떨땐 자바에서 구해야할때가 있다.
입력받은날짜로 해당주의 날짜구하기 (ex. 20100203의 경우 20100201,20100202,20100202,20100203,20100204,20100205,20100206,20100207를 스트링배열로 리턴받음)
public String[] weekCalendar(String yyyymmdd) throws Exception{
Calendar cal = Calendar.getInstance();
int toYear = 0;
int toMonth = 0;
int toDay = 0;
if(yyyymmdd == null || yyyymmdd.equals("")){ //파라메타값이 없을경우 오늘날짜
toYear = cal.get(cal.YEAR);
toMonth = cal.get(cal.MONTH)+1;
toDay = cal.get(cal.DAY_OF_MONTH);
int yoil = cal.get(cal.DAY_OF_WEEK); //요일나오게하기(숫자로)
if(yoil != 1){ //해당요일이 일요일이 아닌경우
yoil = yoil-2;
}else{ //해당요일이 일요일인경우
yoil = 7;
}
cal.set(toYear, toMonth-1, toDay-yoil); //해당주월요일로 세팅
}else{
int yy =Integer.parseInt(yyyymmdd.substring(0, 4));
int mm =Integer.parseInt(yyyymmdd.substring(4, 6))-1;
int dd =Integer.parseInt(yyyymmdd.substring(6, 8));
cal.set(yy, mm,dd);
}
String[] arrYMD = new String[7];
int inYear = cal.get(cal.YEAR);
int inMonth = cal.get(cal.MONTH);
int inDay = cal.get(cal.DAY_OF_MONTH);
int yoil = cal.get(cal.DAY_OF_WEEK); //요일나오게하기(숫자로)
if(yoil != 1){ //해당요일이 일요일이 아닌경우
yoil = yoil-2;
}else{ //해당요일이 일요일인경우
yoil = 7;
}
inDay = inDay-yoil;
for(int i = 0; i < 7;i++){
cal.set(inYear, inMonth, inDay+i); //
String y = Integer.toString(cal.get(cal.YEAR));
String m = Integer.toString(cal.get(cal.MONTH)+1);
String d = Integer.toString(cal.get(cal.DAY_OF_MONTH));
if(m.length() == 1) m = "0" + m;
if(d.length() == 1) d = "0" + d;
arrYMD[i] = y+m +d;
System.out.println("ymd ="+ y+m+d);
}
return arrYMD;
}
'초보프로그래머만..' 카테고리의 다른 글
[mssql]원하는날짜 where조건으로 활용하기(convert사용) (0) | 2010.02.25 |
---|---|
[mssql]쿼리문에 if문 넣기-아이바티스 (0) | 2010.02.24 |
아이바티스-동적리턴컬럼 가져오기 (0) | 2010.02.18 |
JspSourceDependent 관련 에러시...해결방법 (0) | 2010.02.18 |
http://localhost:8080/플젝명 실행할때 창닫힘 현상 해결 (0) | 2010.02.18 |