$(function(){ // 달력 넘기기 $("#prev_month, #prev_year, #next_month, #next_year").click(function() { var param = {month : $(this).attr("month"), year : $(this).attr("year")}; calender(param); }); // 달력 선택 $(document).on("click", ".calendar_event td a", function(){ var year = $(this).attr("year"); var month = $(this).attr("month"); var day = $(this).attr("day"); $("#lately_day").val(year + "." + (Number(month)+1) + "." + day); }); }); $(document).ready(function() { calender(); }); // 달력 그리기 function calender(param) { var now = new Date(); var thismonth = now.getDay(); var thismonth = now.getMonth(); var thisyear = now.getFullYear(); var opts = { month: thismonth, year: thisyear }; $.extend(opts, param); month = parseInt(opts.month); year = parseInt(opts.year); var innerHtml = ''; // 다음달 if (month == 11) { $("#next_month").attr("month", "0"); $("#next_month").attr("year", (year + 1)); } else { $("#next_month").attr("month", (month + 1)); $("#next_month").attr("year", year); } // 이전달 if (month == 0) { $("#prev_month").attr("month", "11"); $("#prev_month").attr("year", (year - 1)); } else { $("#prev_month").attr("month", (month - 1)); $("#prev_month").attr("year", year); } // 다음해 $("#next_year").attr("month", month); $("#next_year").attr("year", (year + 1)); // 이전해 $("#prev_year").attr("month", month); $("#prev_year").attr("year", (year - 1)); // 현재 $("#cal_date").html(year + ". " + (month + 1)); var days = getDaysInMonth(month, year); var firstDayDate = new Date(year, month, 1); var firstDay = firstDayDate.getDay(); var prev_days = getDaysInMonth(month, year); var firstDayDate = new Date(year, month, 1); var firstDay = firstDayDate.getDay(); var prev_m = (month == 0) ? 11 : month - 1; var prev_y = (prev_m == 11) ? year - 1 : year; var prev_days = getDaysInMonth(prev_m, prev_y); firstDay = (firstDay == 0 && firstDayDate) ? 7 : firstDay; var i = 0; for (j = 0 ; j < 42 ; j++){ var sun = ""; if (j % 7 == 0) { innerHtml += ''; sun = "sun"; } if (j < firstDay) { if(month == 0) { innerHtml += '
' + (prev_days - firstDay + j + 1) + 'today
'; } else { innerHtml += '
' + (prev_days - firstDay + j + 1) + 'today
'; } } else if (j >= (firstDay + getDaysInMonth(month, year))) { i = i+1; if(month == 11) { innerHtml += '
' + i + 'today
'; } else { innerHtml += '
' + i + 'today
'; } } else { innerHtml += '
' + (j-firstDay+1) + 'today
'; } if (j % 7 == 6) { innerHtml += ''; } } $("#cal_body").html(innerHtml); } function getDaysInMonth(month, year) { var daysInMonth = [31,28,31,30,31,30,31,31,30,31,30,31]; if ((month == 1) && (year % 4 == 0) && ((year % 100 != 0) || (year % 400 == 0))){ return 29; }else{ return daysInMonth[month]; } }