관리 메뉴

IT.FARMER

calendar algroithm 본문

JAVA

calendar algroithm

아이티.파머 2011. 4. 5. 15:58
반응형
Java Class의 Calendar Class를 활용하는건 공통적으로 똑같다.
단 View 화면에 보여줄때, 요일별 앞뒤 공간조절을 어떤 방식으로 처리 할것인가에 대한 방법이다.

각 클레스의 메소드는 API를 참조할것. 일일이 설명 안하겠음

1. 첫번째 경우의 수

cal.set(year, month, 1);


int startDay = cal.getMinimum(java.util.Calendar.DATE);
//해당 달의 마지막 날자
int endDay = cal.getActualMaximum(java.util.Calendar.DAY_OF_MONTH);
//해당 달의 시작 지점 [일(1), 월(2),화(3),수(4), 목(5), 금(6), 토(7)]
int start = cal.get(java.util.Calendar.DAY_OF_WEEK);

//다음 라인으로 이동 할지를 결정 하는 변수
int newLine = 0;

//테이블 생성
out.println("<table>");

//반복문을 돌며 시작지점 까지 빈공간을 만들어준다.
for (int index = 1; index < start; index++) {
    out.print("<TD>&nbsp;</TD>");
    newLine++;
}

//일자를 화면에 출력, 일정관리를 해줄경우 이곳을 커스터마이징, 응용 하여 사용하면 됨
for (int index = 1; index <= endDay; index++) {
    String color = "";
    if(newLine  == 0){
         color = "RED";
     }else if(newLine == 6 ){
         color  = "BLUE";
     }else{
         color  = "BLACK";
    }
    //TODO : index를 out.println("<tr><td>"+index+"</td></tr>"); 와 본인의 입맛에 맞게 구현


    //하나의 일자를 화면에 출력한뒤 라인이동 변수에 +1을 해준다.
    newLine++;
   
    //라인이동 변수가 7인경우 라인 변경을 위하 "</tr>" 을 출력한다. 라인이동후 라인이동 변수 값은 "0"으로 변경
    //index(화면에찍힌 숫자[날짜] )가 endDay(이달의 마지말날) 보다 작을경우 새로운 라인을 만들어
    //주기위해"<tr>"을  출력
    if (newLine == 7) {
        out.print("</TR>");
        if (index <= endDay) {
            out.print("<TR>");
        }
        newLine = 0;
        }
    }
}   
 
//newLine 변수가 0 혹은 7 로 끝나지 않고 중간에 머물러 있다면 뒤에 남는 공간이 있다는 뜻이다.
//그러므로 반복문 의 조건의 거짓이 될때까지 돌며  라인이동 변수값에 +1을 해준다. 
//라인이동변수값이 7이 되면 조건에 참이 아닌 거짓이 되기 때문에 반복문을 빠져 나오게 된다.
 while (newLine > 0 && newLine < 7) {
     out.print("<TD>&nbsp;</TD>");
     newLine++;
 }



2. 두번째 경우의 수
다음에... ..




3. 세번째 경우의 수
반응형

'JAVA' 카테고리의 다른 글

eclipse maven war  (0) 2012.07.24
Http Session  (0) 2011.08.29
java component reference site  (0) 2011.03.31
Date toString() reverse Date()  (0) 2010.12.02
java reflect private 접근 하기  (0) 2010.09.13