[쥔장]=======================================
자바스크립트로 윤달을 체크하는 소스가 있어서 스크랩함.
생각보다는 많이 쓰이지는 않겠지만, 그래도 유용할 것으로 생각됨.
==============================================
<%@ 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>년
<select id="monthsId" name="months" onchange="dayChange(form);"></select>월
<select id="daysId" name="days"></select>일
<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>
[출처] 달력(윤달체크)현재날짜 |작성자 시크한넘