월별교육일정
페이지 정보
작성자 낙엽타는향기 댓글 0건 조회 117회 작성일 26-05-18 17:21본문
일정 달력
일요일
월요일
화요일
수요일
목요일
금요일
토요일
// 페이지 로드가 완료되면
if (window.addEventListener) window.addEventListener(\'load\', siiruSchdul, false);
else if (window.attachEvent) window.attachEvent(\'onload\', siiruSchdul);
else window.onload = siiruSchdul;
function siiruSchdul() {
// 현재날짜 정보
var current = moment();
// 현재 년월 표출
$(\'.schdul-year\').text(current.format(\'YYYY년 MM월\'));
// 달력호출
showCalendar(current.format(\'YYYY-MM\'));
// 이전월
$(\'.schdul-prev\').click(function(e) {
e.preventDefault();
current.add(-1, \'months\');
$(\'.schdul-year\').text(current.format(\'YYYY년 MM월\'));
$(\'.schdul-result\').html(\'\');
// 달력호출
showCalendar(current.format(\'YYYY-MM\'));
});
// 다음월
$(\'.schdul-next\').click(function(e) {
e.preventDefault();
current.add(1, \'months\');
$(\'.schdul-year\').text(current.format(\'YYYY년 MM월\'));
$(\'.schdul-result\').html(\'\');
// 달력호출
showCalendar(current.format(\'YYYY-MM\'));
});
// 상세내용 클릭 시
$(\'#calendarTable\').on(\'click\', \'td a\', function(e) {
e.preventDefault();
showDetail($.trim($(this).data(\'dt\')));
});
}
// 달력
// 달력
function showCalendar(yearMonth) {
// 달력의 tbody 선언
var calendar = document.getElementById(\'calendarTable\').getElementsByTagName(\'tbody\')[0];
// 해당 월 데이터 호출
$.post(\'/getSchdul.do\', {
\'schdulCtgry\': $.trim($(\'input[name=\"schdulCtgry\"]\').val()),
\'schdulMonth\': yearMonth
}).done(function(data) {
if (data.error == \'N\') {
// 달력을 지운다
$(\'#calendarTable tbody\').children(\'tr\').remove(\'\');
var map = data.dataMap;
// 시작일의 요일 정보. 1:월 ~ 7:일
var firstDayOfWeek = Number(map.dayOfWeek);
// 일요일은 0으로 변환
if (firstDayOfWeek == 7) firstDayOfWeek = 0;
// 해당월의 주 계산
var week = Math.ceil((firstDayOfWeek + Number(map.dayOfMonth)) / 7) + 1;
var leftDays = 7;
var setDays = 1;
// 주 반복
for (var i = 1; i < week; i++) {
// row 생성
var row = calendar.insertRow();
// 첫 번째 주
while (firstDayOfWeek != 0) {
// 1일 전은 공백
row.insertCell().innerHTML = \'\';
firstDayOfWeek -= 1;
leftDays -= 1;
}
while (leftDays != 0) {
var only = true;
var cell = row.insertCell();
// 마지막 날짜보다 크면 공백
if (setDays > Number(map.dayOfMonth)) {
cell.innerHTML = \'\';
leftDays -= 1;
} else {
var fullDay = yearMonth + \'-\' + numberPad(setDays, 2);
// 휴일 체크
var holiday = false;
var holidayNm = \'\';
$.each(map.holiday, function(key, values) {
if ($.trim(values.holiday) == $.trim(fullDay)) {
holidayNm = \'<small>\' + $.trim(values.holidayNm) + \' \';
holiday = true;
}
});
// 일정 체크 (공휴일이 아닐 경우에만 표시)
var schedule = \'\';
if (!holiday) {
$.each(map.list, function(key, values) {
var only = true;
// moment.js를 이용하여 시작일과 종료일을 설정
var beginDate = moment(values.beginDt, \"YYYY-MM-DD HH:mm\");
var endDate = moment(values.endDt, \"YYYY-MM-DD HH:mm\");
var loopDate = moment(beginDate); // 반복문에서 사용할 날짜
while (loopDate.isSameOrBefore(endDate, \'day\')) { // 종료일까지 반복
var loopYearMonth = loopDate.format(\"YYYY-MM\"); // YYYY-MM 형태로 변환
var loopDay = loopDate.date(); // 일자 가져오기
if (loopYearMonth === yearMonth) { // 현재 달력에서 표시 중인 월과 같은 경우만 처리
var loopFullDay = loopDate.format(\"YYYY-MM-DD\"); // YYYY-MM-DD 포맷
if (setDays === loopDay) {
if (only) {
schedule += \'<a href=\"#\" data-dt=\"\' + loopFullDay + \'\" class=\"m_btn\">전체일정\';
only = false;
}
schedule += \'<a href=\"#\" data-dt=\"\' + loopFullDay + \'\" class=\"schedule\">\' + $.trim(values.sj) + \'\';
}
}
loopDate.add(1, \'day\'); // 하루 증가
}
});
}
var className = \'\';
var dayHtml = \'<span>\' + holidayNm + setDays + \'\' + schedule;
// 해당 날짜의 요일
var dayOfWeek = moment(fullDay).day();
// class 셋팅
if (dayOfWeek == 6) className = \'sat\';
if (dayOfWeek == 0) className = \'sun\';
if (fullDay == \'2026-05-18\') {
if ($.trim(className) != \'\') className += \' \';
className += \'today\';
}
if (holiday) {
if ($.trim(className) != \'\') className += \' \';
className += \'holiday\';
}
// 날짜 및 class 셋팅
cell.innerHTML = dayHtml;
cell.className = className;
setDays += 1;
leftDays -= 1;
}
}
leftDays = 7;
}
}
});
}
// 상세내용
function showDetail(day) {
// 해당 일의 데이터 호출
$.post(\'/getSchdul.do\', {\'schdulCtgry\':$.trim($(\'input[name=\"schdulCtgry\"]\').val()),\'searchSDt\':day,\'searchEDt\':day}).done(function(data) {
if (data.error == \'N\') {
var map = data.dataMap;
var detailHtml = \'<p class=\"detailDate\">\'+moment(day).format(\'YYYY년 MM월 DD일 dddd\')+\'\';
// 일정
$.each(map.list, function(key, values) {
detailHtml+= \'<div class=\"detail-block\">\';
detailHtml+= \'<span>\';
if ($.trim($(\'input[name=\"schdulCtgry\"]\').val()) == \'\') detailHtml+= \'[\'+$.trim(values.ctgryCodeNm)+\'] \';
detailHtml+= \'\'+$.trim(values.sj)+\'\';
if (($.trim(values.beginTime) != \'\' && $.trim(values.beginTime) != \'00:00\') || $.trim(values.place) != \'\' || $.trim(values.chrgDept) != \'\') {
detailHtml+= \'<dl>\';
if ($.trim(values.beginTime) != \'\' && $.trim(values.beginTime) != \'00:00\') {
detailHtml+= \'<dt>시간\';
detailHtml+= \'<dd>\'+$.trim(values.beginTime)+\'\';
}
if ($.trim(values.place) != \'\') {
detailHtml+= \'<dt>장소\';
detailHtml+= \'<dd>\'+$.trim(values.place)+\'\';
}
if ($.trim(values.chrgDept) != \'\') {
detailHtml+= \'<dt>담당부서\';
detailHtml+= \'<dd>\'+$.trim(values.chrgDept)+\' \'+$.trim(values.chrgTelno)+\'\';
}
detailHtml+= \'\';
}
if ($.trim(values.rm1) != \'\' || $.trim(values.rm2) != \'\' || $.trim(values.rm3) != \'\' || $.trim(values.rm4) != \'\' || $.trim(values.rm5) != \'\' || $.trim(values.schdulCn) != \'\') {
detailHtml+= \'<p class=\"result-well\">\';
if ($.trim(values.rm1) != \'\') detailHtml+= \'비고1 : \'+$.trim(values.rm1)+\'<br>\';
if ($.trim(values.rm2) != \'\') detailHtml+= \'비고2 : \'+$.trim(values.rm2)+\'<br>\';
if ($.trim(values.rm3) != \'\') detailHtml+= \'비고3 : \'+$.trim(values.rm3)+\'<br>\';
if ($.trim(values.rm4) != \'\') detailHtml+= \'비고4 : \'+$.trim(values.rm4)+\'<br>\';
if ($.trim(values.rm5) != \'\') detailHtml+= \'비고5 : \'+$.trim(values.rm5)+\'<br>\';
if ($.trim(values.schdulCn) != \'\') detailHtml+= $.trim(values.schdulCn);
detailHtml+= \'\';
}
detailHtml+= \'
일요일
월요일
화요일
수요일
목요일
금요일
토요일
// 페이지 로드가 완료되면
if (window.addEventListener) window.addEventListener(\'load\', siiruSchdul, false);
else if (window.attachEvent) window.attachEvent(\'onload\', siiruSchdul);
else window.onload = siiruSchdul;
function siiruSchdul() {
// 현재날짜 정보
var current = moment();
// 현재 년월 표출
$(\'.schdul-year\').text(current.format(\'YYYY년 MM월\'));
// 달력호출
showCalendar(current.format(\'YYYY-MM\'));
// 이전월
$(\'.schdul-prev\').click(function(e) {
e.preventDefault();
current.add(-1, \'months\');
$(\'.schdul-year\').text(current.format(\'YYYY년 MM월\'));
$(\'.schdul-result\').html(\'\');
// 달력호출
showCalendar(current.format(\'YYYY-MM\'));
});
// 다음월
$(\'.schdul-next\').click(function(e) {
e.preventDefault();
current.add(1, \'months\');
$(\'.schdul-year\').text(current.format(\'YYYY년 MM월\'));
$(\'.schdul-result\').html(\'\');
// 달력호출
showCalendar(current.format(\'YYYY-MM\'));
});
// 상세내용 클릭 시
$(\'#calendarTable\').on(\'click\', \'td a\', function(e) {
e.preventDefault();
showDetail($.trim($(this).data(\'dt\')));
});
}
// 달력
// 달력
function showCalendar(yearMonth) {
// 달력의 tbody 선언
var calendar = document.getElementById(\'calendarTable\').getElementsByTagName(\'tbody\')[0];
// 해당 월 데이터 호출
$.post(\'/getSchdul.do\', {
\'schdulCtgry\': $.trim($(\'input[name=\"schdulCtgry\"]\').val()),
\'schdulMonth\': yearMonth
}).done(function(data) {
if (data.error == \'N\') {
// 달력을 지운다
$(\'#calendarTable tbody\').children(\'tr\').remove(\'\');
var map = data.dataMap;
// 시작일의 요일 정보. 1:월 ~ 7:일
var firstDayOfWeek = Number(map.dayOfWeek);
// 일요일은 0으로 변환
if (firstDayOfWeek == 7) firstDayOfWeek = 0;
// 해당월의 주 계산
var week = Math.ceil((firstDayOfWeek + Number(map.dayOfMonth)) / 7) + 1;
var leftDays = 7;
var setDays = 1;
// 주 반복
for (var i = 1; i < week; i++) {
// row 생성
var row = calendar.insertRow();
// 첫 번째 주
while (firstDayOfWeek != 0) {
// 1일 전은 공백
row.insertCell().innerHTML = \'\';
firstDayOfWeek -= 1;
leftDays -= 1;
}
while (leftDays != 0) {
var only = true;
var cell = row.insertCell();
// 마지막 날짜보다 크면 공백
if (setDays > Number(map.dayOfMonth)) {
cell.innerHTML = \'\';
leftDays -= 1;
} else {
var fullDay = yearMonth + \'-\' + numberPad(setDays, 2);
// 휴일 체크
var holiday = false;
var holidayNm = \'\';
$.each(map.holiday, function(key, values) {
if ($.trim(values.holiday) == $.trim(fullDay)) {
holidayNm = \'<small>\' + $.trim(values.holidayNm) + \' \';
holiday = true;
}
});
// 일정 체크 (공휴일이 아닐 경우에만 표시)
var schedule = \'\';
if (!holiday) {
$.each(map.list, function(key, values) {
var only = true;
// moment.js를 이용하여 시작일과 종료일을 설정
var beginDate = moment(values.beginDt, \"YYYY-MM-DD HH:mm\");
var endDate = moment(values.endDt, \"YYYY-MM-DD HH:mm\");
var loopDate = moment(beginDate); // 반복문에서 사용할 날짜
while (loopDate.isSameOrBefore(endDate, \'day\')) { // 종료일까지 반복
var loopYearMonth = loopDate.format(\"YYYY-MM\"); // YYYY-MM 형태로 변환
var loopDay = loopDate.date(); // 일자 가져오기
if (loopYearMonth === yearMonth) { // 현재 달력에서 표시 중인 월과 같은 경우만 처리
var loopFullDay = loopDate.format(\"YYYY-MM-DD\"); // YYYY-MM-DD 포맷
if (setDays === loopDay) {
if (only) {
schedule += \'<a href=\"#\" data-dt=\"\' + loopFullDay + \'\" class=\"m_btn\">전체일정\';
only = false;
}
schedule += \'<a href=\"#\" data-dt=\"\' + loopFullDay + \'\" class=\"schedule\">\' + $.trim(values.sj) + \'\';
}
}
loopDate.add(1, \'day\'); // 하루 증가
}
});
}
var className = \'\';
var dayHtml = \'<span>\' + holidayNm + setDays + \'\' + schedule;
// 해당 날짜의 요일
var dayOfWeek = moment(fullDay).day();
// class 셋팅
if (dayOfWeek == 6) className = \'sat\';
if (dayOfWeek == 0) className = \'sun\';
if (fullDay == \'2026-05-18\') {
if ($.trim(className) != \'\') className += \' \';
className += \'today\';
}
if (holiday) {
if ($.trim(className) != \'\') className += \' \';
className += \'holiday\';
}
// 날짜 및 class 셋팅
cell.innerHTML = dayHtml;
cell.className = className;
setDays += 1;
leftDays -= 1;
}
}
leftDays = 7;
}
}
});
}
// 상세내용
function showDetail(day) {
// 해당 일의 데이터 호출
$.post(\'/getSchdul.do\', {\'schdulCtgry\':$.trim($(\'input[name=\"schdulCtgry\"]\').val()),\'searchSDt\':day,\'searchEDt\':day}).done(function(data) {
if (data.error == \'N\') {
var map = data.dataMap;
var detailHtml = \'<p class=\"detailDate\">\'+moment(day).format(\'YYYY년 MM월 DD일 dddd\')+\'\';
// 일정
$.each(map.list, function(key, values) {
detailHtml+= \'<div class=\"detail-block\">\';
detailHtml+= \'<span>\';
if ($.trim($(\'input[name=\"schdulCtgry\"]\').val()) == \'\') detailHtml+= \'[\'+$.trim(values.ctgryCodeNm)+\'] \';
detailHtml+= \'\'+$.trim(values.sj)+\'\';
if (($.trim(values.beginTime) != \'\' && $.trim(values.beginTime) != \'00:00\') || $.trim(values.place) != \'\' || $.trim(values.chrgDept) != \'\') {
detailHtml+= \'<dl>\';
if ($.trim(values.beginTime) != \'\' && $.trim(values.beginTime) != \'00:00\') {
detailHtml+= \'<dt>시간\';
detailHtml+= \'<dd>\'+$.trim(values.beginTime)+\'\';
}
if ($.trim(values.place) != \'\') {
detailHtml+= \'<dt>장소\';
detailHtml+= \'<dd>\'+$.trim(values.place)+\'\';
}
if ($.trim(values.chrgDept) != \'\') {
detailHtml+= \'<dt>담당부서\';
detailHtml+= \'<dd>\'+$.trim(values.chrgDept)+\' \'+$.trim(values.chrgTelno)+\'\';
}
detailHtml+= \'\';
}
if ($.trim(values.rm1) != \'\' || $.trim(values.rm2) != \'\' || $.trim(values.rm3) != \'\' || $.trim(values.rm4) != \'\' || $.trim(values.rm5) != \'\' || $.trim(values.schdulCn) != \'\') {
detailHtml+= \'<p class=\"result-well\">\';
if ($.trim(values.rm1) != \'\') detailHtml+= \'비고1 : \'+$.trim(values.rm1)+\'<br>\';
if ($.trim(values.rm2) != \'\') detailHtml+= \'비고2 : \'+$.trim(values.rm2)+\'<br>\';
if ($.trim(values.rm3) != \'\') detailHtml+= \'비고3 : \'+$.trim(values.rm3)+\'<br>\';
if ($.trim(values.rm4) != \'\') detailHtml+= \'비고4 : \'+$.trim(values.rm4)+\'<br>\';
if ($.trim(values.rm5) != \'\') detailHtml+= \'비고5 : \'+$.trim(values.rm5)+\'<br>\';
if ($.trim(values.schdulCn) != \'\') detailHtml+= $.trim(values.schdulCn);
detailHtml+= \'\';
}
detailHtml+= \'
출처: 원문 바로가기
관련링크
댓글목록
등록된 댓글이 없습니다.