'IT_Expert/Tag-Script'에 해당되는 글 15

  1. 2013.01.09 javascript] Calendar (윤달) 체크 1
IT_Expert/Tag-Script | Posted by 낫기법필 2013. 1. 9. 12:47

javascript] Calendar (윤달) 체크

 

[쥔장]=======================================

자바스크립트로 윤달을 체크하는 소스가 있어서 스크랩함.

생각보다는 많이 쓰이지는 않겠지만, 그래도 유용할 것으로 생각됨.

==============================================

 

 

<%@ page contentType="text/html; charset=utf-8"%>
<html>
<title>달력(윤달/음달) 현재날짜선택</title>
<head>
<script type="text/Javascript" src="../js/jquery-1.7.1.js"></script>

<script type="text/Javascript">
var now = new Date();
var year = now.getYear();
var month = now.getMonth();
var date = now.getDate();
var dArr = ['0' ,'31', '29', '31', '30', '31', '30', '31', '30', '30', '31','31', '30' ];

function fsOnLoad() {
 var frm = document.forms;

 var yy = frm.years;
 yy.length = 4;
 for ( var i = 0; i < yy.length; i++) {
  yy.options[i].value = year - i;  //i값0~3까지 4개배열 2012,2011,2010,2009 넣어줌
  yy.options[i].text = year - i;  //i값0~3까지 4개배열 2012,2011,2010,2009 화면에보여줌
  if (year == year + i) {  //초기선택 회면에 보여주는값  year은 2012으므로 i=0값이들어간 배열과같음
   yy.options[i].selected = true;
  }
 }

 var mm = frm.months;
 mm.length = 12;
 for ( var x = 0; x < mm.length; x++) {
  mm.options[x].value = x + 1;  //x값0~11까지배열에 1~12까지값을 넣어줌
  mm.options[x].text = x + 1;  //x값0~11까지배열에 1~12까지값을 화면에보여줌
  if (month + 1 == x + 1) {  
   //month초기값은 +1은 더해준값과 같더군요 현재 11월면 month값은 10월로나옴
   //그래서 11 == x가 10일때+1을 더해줌. 배열값 x=10일때 11이 보여줌~
   mm.options[x].selected = true;
  }
 }
 dayChange(frm);  //dayChange를 onchange했을때 document.forms값은 넘겨줌~
}

function dayChange(frm) {
 var dd = frm.days;
 dd.length = parseInt(dArr[frm.months.value]);
 //배열값은 int형변환하고 dd.length값에 넣어줌
 var gYear = parseInt(frm.years.value);

 if(dd.length == 29){  //윤달함수계산수식
  if((gYear%4 == 0 && gYear%100 != 0)||(gYear%400 == 0)){
   dd.length;
  }else{
   --dd.length;
  }
 }
 for ( var y = 0; y < dd.length; y++) {
  dd.options[y].value = y + 1;
  dd.options[y].text = y + 1;
  if (date == y + 1) {
   dd.options[y].selected = true;
  }
 }
}
</script>
</head>

<body onload="javascript:fsOnLoad();">

<form id="forms" name="forms">
 <select id="yearsId" name="years" onchange="dayChange(form);"></select>년 &nbsp; 
 <select id="monthsId" name="months" onchange="dayChange(form);"></select>월 &nbsp; 
 <select id="daysId" name="days"></select>일 &nbsp; 
 <input type="button" value="확인" onclick="javascript:send();" />
 <!-- submit시 page전환으로 값이 초기화돼서 아래 자바코드로 request받아 확인

 

자바코드만 사용할라고했는데 jQuery사용하게 돼네요 ㅡ.ㅡ;;
 그냥 위에 버튼타입 없애구 submit 사용해도 경로로 값이 제대로 넘어갔나
 테스트는 가능합니다~ 

 -->
 
</form>

<script type="text/Javascript">
function send(){
var yy = $('#yearsId').val("<%=request.getParameter("years") %>");
var mm = $('#monthsId').val("<%=request.getParameter("months") %>");
var dd = $('#daysId').val("<%=request.getParameter("days") %>");

for(var i=0; i<yy.length; i++){
 for(var x=0; x<mm.length; x++){
  for(var y=0; y<dd.length; y++){
   alert(yy[i].value+"년 "+mm[x].value+"월 "+dd[y].value+"일");   
  }
 }
}
}
</script>
</body>
</html>