/*********************************************
* 功能:构造一个日历控件
* 参数:curYear - 当前年
* curMonth - 当前月
* curDay - 当前日
**********************************************/
var cld;
function calendar(curYear,curMonth,curDay)
{
var monthDays = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var weekNames = new Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");
var monthNames = new Array("01月","02月","03月","04月","05月","06月","07月","08月","09月","10月","11月","12月");
var minYear = 1900 // Minimum year
var maxYear = 2099 // Maximum year
//检查年份
if (curYear < minYear) curYear = minYear
if (curYear > maxYear) curYear = maxYear
//检查月份
if (curMonth < 1) curMonth = 1
if (curMonth > 12) curMonth = 12
//修正小于10的月份为两位数,前面补0
if(curMonth<10 && new String(curMonth).length==1)
{
curMonth="0"+curMonth;
}
//检查日期
if (curDay<1) curDay=1
if (curDay>maxDay) curDay=maxDay
//修正小于10的月份为两位数,前面补0
if(curDay<10 && new String(curDay).length==1)
{
curDay="0"+curDay;
}
var firstDay = new Date(curYear,curMonth-1,1);//用当前年月的第一天构造Date对象
var startWeek = firstDay.getDay();//取得当前年月的第一天是星期几
cld = new calendar1(curYear,curMonth-1);//定义显示农历详细资料的对象
//===== 某年的第n个节气为几日(从0小寒起算)
function sTerm(y,n)
{
var offDate = new Date( ( 31556925974.7*(y-1900) + sTermInfo[n]*60000 ) + Date.UTC(1900,0,6,2,5) );
return(offDate.getUTCDate());
}
// 中文日期
function cDay(d)
{
var s;
switch (d) {
case 10:
s = '初十'; break;
case 20:
s = '二十'; break;
break;
case 30:
s = '三十'; break;
break;
default :
s = nStr2[Math.floor(d/10)];
s += nStr1[d%10];
}
return(s);
}
/*
功能: 返回整个月的日期资料控件
参数:y - 年份
m - 月份
使用方式: OBJ = new calendar1(年,零起算月);
OBJ.length 返回当月最大日
OBJ.firstWeek 返回当月一日星期
由 OBJ[日期].属性名称 即可取得各项值
OBJ[日期].isToday 返回是否为今日 true 或 false
其他 OBJ[日期] 属性参见 calElement() 中的注解
*/
function calendar1(y,m)
{
var sDObj, lDObj, lY, lM, lD=1, lL, lX=0, tmp1, tmp2, tmp3;
var cY, cM, cD; //年柱,月柱,日柱
var lDPOS = new Array(3);
var n = 0;
var firstLM = 0;
var solarMonth=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var Gan=new Array("甲","乙","丙","丁","戊","己","庚","辛","壬","癸");//天干
var Zhi=new Array("子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥");//地支
var Animals=new Array("鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪");//生宵
//二十四节气
var solarTerm = new Array("小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至");
var sTermInfo = new Array(0,21208,42467,63836,85337,107014,128867,150921,173149,195551,218072,240693,263343,285989,308563,331033,353350,375494,397447,419210,440795,462224,483532,504758);
var nStr1 = new Array('日','一','二','三','四','五','六','七','八','九','十');
var nStr2 = new Array('初','十','廿','卅','□');
var monthName = new Array("JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC");
//公历节日 *表示放假日
var sFtv = new Array("0101 元旦","0308 妇女节","0501 劳动节","0701 建党节","0801 建军节","0910 教师节","1001 国庆节");
var wFtv = new Array("0520 母亲节","0630 父亲节");
var lFtv = new Array("0101 春节","0115 元宵","0505 端午","0815 中秋","0100 除夕");