메뉴 건너뛰기

조회 수 10315 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title> 달력만들기 </title>
<script type="text/javascript">
//<![CDATA[

function printCalendar(y, m) {    
    
    //① 현재 날짜와 현재 달에 1일의 날짜 객체를 생성합니다.
    var date=new Date(); //날짜 객체 생성
    var nowY=date.getFullYear(); //현재 연도
    var nowM=date.getMonth(); //현재 월
    var nowD=date.getDate(); //현재 일
    
    y = (y != undefined)?y:nowY;
    m = (m != undefined)?m-1:nowM;
        
    /* 현재 월의 1일에 요일을 구합니다. 
     그럼 그달 달력에 첫 번째 줄 빈칸의 개수를 구할 수 있습니다.*/

    var theDate=new Date(y, m, 1); 
    var theDay=theDate.getDay();

    //② 현재 월에 마지막 일을 구해야 합니다.

    //1월부터 12월까지 마지막 일을 배열로 저장함.
    var last=[31,28,31,30,31,30,31,31,30,31,30,31];
    /*현재 연도가 윤년(4년 주기이고 100년 주기는 제외합니다. 
    또는 400년 주기)일경우 2월에 마지막 날짜는 29가 되어야 합니다.*/

    if(y%4 == 0 && y % 100 !=0 || y%400 == 0) lastDate=last[1]=29;

    var lastDate=last[m]; //현재 월에 마지막이 몇일인지 구합니다.

    /*③ 현재 월의 달력에 필요한 행의 개수를 구합니다.
    var row(행의 개수)= Math.ceil( (theDay(빈 칸)+lastDate(월의 전체 일수)) / 7)*/


    var row=Math.ceil((theDay+lastDate)/7); //필요한 행수
    
    //④ 달력 년도/월 표기 및  달력 테이블 생성
    document.write("<h2>"+y+"."+(m+1)+"</h2>");
    //문자결합 연산자를 사용해 요일이 나오는 행을 생성    

    var calendar="<table border='1'>";
    calendar+="<tr>";
    calendar+="<th>일</th>";
    calendar+="<th>월</th>";
    calendar+="<th>화</th>";
    calendar+="<th>수</th>";
    calendar+="<th>목</th>";
    calendar+="<th>금</th>";
    calendar+="<th>토</th>";
    calendar+="</tr>";

    var dNum=1;
    //이중 for문을 이용해 달력 테이블을 생성
    for(var i=1; i<=row; i++){//행 생성 (tr 태그 생성)
    calendar+="<tr>";

    for(var k=1; k<=7; k++){//열 생성 (td 태그 생성)        
        /*행이 첫 줄이고 현재 월의 1일의 요일 이전은 모두 빈열로
        표기하고 날짜가 마지막 일보다 크면 빈열로 표기됩니다.*/

        if(i==1 && k<=theDay || dNum>lastDate){
          calendar+="<td> &nbsp; </td>";
         }else{
          calendar+="<td>"+dNum+"</td>";
           dNum++;
         }
    }
    calendar+="<tr>";
    }    

    //⑤ 문자로 결합된 달력 테이블을 문서에 출력
    document.write(calendar);
}

printCalendar();
//printCalendar(2012,2);

//]]>
</script>
</head>
<body>

</body>
</html>



  1. No Image 19Jun
    by 조쉬
    2015/06/19 Views 10315 

    예제 - 자바스크립트로 현재 달의 달력 만들기 (calendar)

  2. No Image 19Jun
    by
    2015/06/19 Views 8657 

    마우스 드래그, 오른쪽 팝업메뉴, 선택 막기 (IE11, 파이어폭스, 크롬 확인)

  3. Checkbox : 체크박스 체크여부 확인

  4. 텍스트박스(input type = "text") 숫자 증가, 감소 시키기 - 쇼핑몰 주문 수량

  5. No Image 19Jun
    by
    2015/06/19 Views 6895 

    정규식을 이용한 콤마(comma) 제거하기

  6. No Image 19Jun
    by
    2015/06/19 Views 7949 

    정규식을 이용한 실시간 콤마(comma) 넣기

  7. 자바스크립트로 네트워크 연결 확인하기 (Navigator onLine Property)

  8. No Image 19Jun
    by
    2015/06/19 Views 9589 

    location.href 로 새창 여는 방법 (target=_blank 효과)

  9. No Image 28Apr
    by
    2015/04/28 Views 5689 

    CheckBox 전체 선택 & 해제

  10. No Image 28Apr
    by
    2015/04/28 Views 13619 

    선택(CheckBox) 된 Row 삭제 - 화면에서 추가된 Row

  11. No Image 28Apr
    by
    2015/04/28 Views 6697 

    선택된 데이터 부모창에 넘기기 (iframe ☞ 부모창)

  12. No Image 06Apr
    by
    2015/04/06 Views 8380 

    2단계 트리메뉴 마우스오버(mouseover), 온포커스(onfocus) 구현

  13. No Image 06Apr
    by
    2015/04/06 Views 11815 

    jquery 메뉴 - 아래로 한번에 전체가 펼처짐

  14. No Image 06Apr
    by
    2015/04/06 Views 5651 

    자바스크립트 이벤트 목록입니다. ( javascript event )

  15. '레이블', 반복문을 제어하자!

  16. No Image 03Feb
    by
    2015/02/03 Views 11209 

    'Array', 배열 및 다차원 배열 선언에 대해 알아보자!

  17. No Image 03Feb
    by
    2015/02/03 Views 6515 

    배열의 리터럴 선언, 또다른 배열 선언 방법!

  18. No Image 03Feb
    by
    2015/02/03 Views 6314 

    '문자 ↔ 숫자', 타입을 바꿔보자!

  19. 드롭다운 메뉴를 만들어보자! -1탄

  20. 'onmouseover', 마우스 오버 효과 - 글씨 바꾸기!

Board Pagination Prev 1 ... 3 4 5 6 7 8 9 10 11 12 13 Next
/ 13

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved