티스토리 뷰
<html>
<head>
<title> 날짜 셀렉터 </title>
<script language="JavaScript">
function onMouse(td){
td.style.backgroundColor = "white";
td.style.fontWeight="bold";
td.style.cursor="hand";
}
function outMouse(td,today){
if(today=="today"){ //오늘 날짜 건들 시
td.style.backgroundColor = "red";
td.style.color="white"
td.style.fontWeight="bold";
}
else{
td.style.backgroundColor = "white";
td.style.fontWeight="normal"; //마우스가 건드는 숫자만 굵어짐
}
}
function calendar(year,month){ //달력 함수
//내장 객체
var nowDate = new Date(); //오늘 날짜 객체 선언
var nYear = nowDate.getFullYear(); //오늘의 년도
var nMonth = nowDate.getMonth(); //오늘의 월 ※ 0월부터 시작
var nDate = nowDate.getDate(); //오늘의 날
var nNumday = nowDate.getDay(); //오늘의 요일 0=일요일...6=토요일
var endDay=new Array(31,28,31,30,31,30,31,31,30,31,30,31); //각달의 마지막 날짜
var dayName=new Array("일", "월", "화", "수", "목", "금", "토"); // 숫자 요일을 문자 요일 바꿀 함수
var col=0; //나중에 앞뒤 빈 날짜칸 계산
if (year==null){ //null 일경우, 처음 페이지의 년도는 현재 년도를 가져옴
year=nYear;
}
if (month==null){ //null 일경우, 처음 페이지의 월은 현재 월을 가져옴
month=nMonth;
}
eDate= new Date(); //달을 넘길 때 바뀌는 날짜
eDate.setFullYear(year); //바뀌는 년도
eDate.setMonth(month); //바뀌는 월
eDate.setDate(1); // 날짜는 1일로 설정
var fNumday=eDate.getDay(); //넘길때 달 1일 요일 (숫자)
var lastDay=endDay[eDate.getMonth()]; //바뀌는 월의 마지막 날짜
if ((eDate.getMonth()==1)&&(((eDate.getYear()%4==0)&&(eDate.getYear() %100 !=0))||eDate.getYear() % 400 ==0 )){
//0월 부터 시작하므로 배열의 첫번째는 2월-> 윤달 계산 4년마다 29일, 100년는 28일, 400년 째는 29일
lastDay=29;
}
calendarStr = "<table>"
calendarStr += "<tr align=center><td valign=middle>"
calendarStr += "<a href=javascript:calendar("+year+","+(month-1)+") class=preNext><</a>" //월을 넘길때 빼기 -1을 해서 넘긴다(년도는 자동 계산)
calendarStr += "</td><td colspan=5 >"
calendarStr += "<font size=3 color=black><b>"+eDate.getFullYear()+"년 "+(eDate.getMonth()+1)+"월</b></font> "//해당하는 년도와 월 표시
calendarStr += "</td><td valign=middle>"
calendarStr += "<a href=javascript:calendar("+year+","+(month+1)+") class=preNext>></a>" //월을 넘길때 더하기 +1을 해서 넘긴다(년도는 자동 계산)
calendarStr += "</td></tr><tr>"
for (i=0;i<dayName.length;i++){
calendarStr += "<td class=week>"+dayName[i] + "</td>" //숫자 요일을 날짜로 입력
}
calendarStr += "</tr><tr align=center>"
for (i=0;i<fNumday;i++){ // 첫번째 날짜의 숫자 요일을 구해서 그전까지는 빈칸 처리
calendarStr += "<td> </td>"
col++;
}
for ( i=1; i<=lastDay; i++){ //해당 월의 달력 출력
if(eDate.getFullYear()==nYear&&eDate.getMonth()==nMonth&&i==nDate){ //오늘이면 today 스타일로 표시
calendarStr += "<td class=today onmouseover=onMouse(this) onmouseout=outMouse(this,'today') onClick=datePicker("+year+","+month+","+i+",'"+dayName[col]+"')>"+i+"</td>"
}
else {
if(col==0){//일요일
calendarStr += "<td class=sunday onmouseover=onMouse(this) onmouseout=outMouse(this,'notToday') onClick=datePicker("+year+","+month+","+i+",'"+dayName[col]+"')>"+i+"</td>"
}
else if(1<=col&&col<=5){//평일
calendarStr += "<td class=workday onmouseover=onMouse(this) onmouseout=outMouse(this,'notToday') onClick=datePicker("+year+","+month+","+i+",'"+dayName[col]+"')>"+i+"</td>"
}
else if(col==6){ //토요일
calendarStr += "<td class=satday onmouseover=onMouse(this) onmouseout=outMouse(this,'notToday') onClick=datePicker("+year+","+month+","+i+",'"+dayName[col]+"')>"+i+"</td>"
}
}
col++;
if(col==7){ //7칸을 만들면 줄 바꾸어 새 줄을 만들고 다시 첫 칸부터 시작
calendarStr += "</tr><tr align=center>"
col=0;
}
}
for (i=col;i<dayName.length;i++){ //마지막 날에서 남은 요일의 빈 칸 만들기
calendarStr += "<td> </td>"
}
document.getElementById('calendarView').innerHTML = calendarStr
}
</script>
</head>
<body onload="calendar()">
<div id="calendarView" ></div>
</body>
</html>
'LANGUAGE > JAVA SCRIPT' 카테고리의 다른 글
[JAVA SCRIPT] 이미지 자동 변경 (0) | 2018.04.15 |
---|---|
[JAVA SCRIPT] 회원가입 유효성 검사 (0) | 2018.04.08 |
[JAVA SCRIPT] 계산기 (0) | 2018.04.05 |
[JAVA SCRIPT] 배열 관련 객체 (0) | 2018.04.05 |
[JAVA SCRIPT] ALERT( ) (0) | 2018.04.05 |
댓글