asp.net 中日期选择器

看着不错做个笔记!
转载自:http://www.cnblogs.com/jackzhang/archive/2006/11/14/560440.html

<input id="InputCalendar1" name="InputCalendar1" runat="server" type="text" readonly="readonly" onclick="javascript:this.focus()" onfocus="fPopCalendar(this,this,PopCal); return false;" style="cursor:hand" />
<input id="InputCalendar2" name="InputCalendar2" runat="server" type="text" readonly="readonly" onclick="javascript:this.focus()" onfocus="fPopCalendar(this,this,PopCal); return false;" style="cursor:hand" />
 
<input type="submit" name="Button1" value="日期段查询" id="Button1" style="background-color:inactivecaptiontext;border-style:Groove;" />


<script language="JavaScript">
var gdCtrl 
= new Object();
var gcGray 
= "#808080";
var gcToggle 
= "highlight";
var gcBG 
= "threedface";
var gMonths 
= new Array("一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月");
var gdCurDate 
= new Date();
var giYear 
= gdCurDate.getFullYear();
var giMonth 
= gdCurDate.getMonth()+1;
var giDay 
= gdCurDate.getDate();
var sxYear 
= giYear;
var sxMonth 
= giMonth;
var sxDay 
= giDay;
var sxDatestr 
= gdCtrl.value;
if (sxDatestr != ""){
var sxDate 
= new Date(sxDatestr);
sxYear 
= sxDate.getFullYear();
}
var VicPopCal 
= new Object();
function mouseover(obj){
obj.style.borderTop 
= 'buttonshadow 1px solid';
obj.style.borderLeft 
= 'buttonshadow 1px solid';
obj.style.borderRight 
= 'buttonhighlight 1px solid';
obj.style.borderBottom 
= 'buttonhighlight 1px solid';
}
function mouseout(obj){
obj.style.borderTop 
= 'buttonhighlight 1px solid';
obj.style.borderLeft 
= 'buttonhighlight 1px solid';
obj.style.borderRight 
= 'buttonshadow 1px solid';
obj.style.borderBottom 
= 'buttonshadow 1px solid';
}
function mousedown(obj){
obj.style.borderTop 
= 'buttonshadow 1px solid';
obj.style.borderLeft 
= 'buttonshadow 1px solid';
obj.style.borderRight 
= 'buttonhighlight 1px solid';
obj.style.borderBottom 
= 'buttonhighlight 1px solid';
}
function mouseup(obj){
obj.style.borderTop 
= 'buttonhighlight 1px solid';
obj.style.borderLeft 
= 'buttonhighlight 1px solid';
obj.style.borderRight 
= 'buttonshadow 1px solid';
obj.style.borderBottom 
= 'buttonshadow 1px solid';
}
function fPopCalendar(popCtrl, dateCtrl, popCal){
parent.
event.cancelBubble=true;
VicPopCal 
= popCal;
gdCtrl 
= dateCtrl;
fSetYearMon(giYear, giMonth);
var point 
= fGetXY(popCtrl);
with (VicPopCal.style) {left 
= point.x;top  = point.y+popCtrl.offsetHeight+1;visibility = 'visible';}
VicPopCal.focus();
}
function fSetDate(iYear, iMonth, iDay){
if ((iYear == 0&& (iMonth == 0&& (iDay == 0)){
gdCtrl.value 
= "";
}
else{
if (iMonth < 10){iMonth = "0"+iMonth;}
if (iDay < 10){iDay = "0"+iDay;}
gdCtrl.value 
= iYear+"-"+iMonth+"-"+iDay;
}
VicPopCal.style.visibility 
= "hidden";
}
function fSetSelected(aCell){
var iOffset 
= 0;
var iYear 
= parseInt(document.all.tbSelYear.value);
var iMonth 
= parseInt(document.all.tbSelMonth.value);
aCell.bgColor 
= gcBG;
with (aCell.children[
"cellText"]){
var iDay 
= parseInt(innerText);
if (color==gcGray){iOffset = (Victor<10)?-1:1;}
iMonth 
+= iOffset;
if (iMonth<1) { iYear--; iMonth = 12;}else{if (iMonth>12){iYear++;iMonth = 1;}}
}
fSetDate(iYear, iMonth, iDay);
}
function Point(iX, iY){
this.x = iX;this.y = iY;}
function fBuildCal(iYear, iMonth){
var aMonth
=new Array();
for(i=1;i<7;i++){aMonth[i]=new Array(i);}
var dCalDate
=new Date(iYear, iMonth-11);
var iDayOfFirst
=dCalDate.getDay();
var iDaysInMonth
=new Date(iYear, iMonth, 0).getDate();
var iOffsetLast
=new Date(iYear, iMonth-10).getDate()-iDayOfFirst+1;
var iDate 
= 1;
var iNext 
= 1;
for (d = 0; d < 7; d++){aMonth[1][d] = (d<iDayOfFirst)?-(iOffsetLast+d):iDate++;}
for (w = 2; w < 7; w++){for (d = 0; d < 7; d++){aMonth[w][d] = (iDate<=iDaysInMonth)?iDate++:-(iNext++);}}
return aMonth;
}
function fDrawCal(iYear, iMonth, iDay, iCellWidth, iDateTextSize) {
var WeekDay 
= new Array("","","","","","","");
var styleTD 
= " bgcolor='"+gcBG+"' width='"+iCellWidth+"' bordercolor='"+gcBG+"' valign='middle' align='center' style='font-size: 12px;background: buttonface;border-top: buttonhighlight 1px solid;border-left: buttonhighlight 1px solid;border-right: buttonshadow 1px solid; border-bottom: buttonshadow 1px solid;";
with (document) {
write(
"<tr align='center'>");
for(i=0; i<7; i++){write("<td height='20' "+styleTD+"color:#990099' >" + WeekDay[i] + "</td>");}
write(
"</tr>");
for (w = 1; w < 7; w++) {
write(
"<tr align='center'>");
for (d = 0; d < 7; d++) {
write(
"<td width='10%' height='15' id=calCell "+styleTD+"cursor:hand;' onmouseover='mouseover(this)' onmouseout='mouseout(this)' onmousedown='mousedown(this)' onmouseup='mouseup(this)' onclick='fSetSelected(this)'>");
write(
"<font style='font-size: 13px;' id=cellText Victor='Liming Weng'> </font>");
write(
"</td>");
}
write(
"</tr>");
}
}
}
function fUpdateCal(iYear, iMonth) {
sxYear 
= iYear;
sxMonth 
= iMonth;
yeartd1.innerText 
= sxYear + "";
monthtd1.innerText 
= gMonths[sxMonth-1];
myMonth 
= fBuildCal(iYear, iMonth);
var i 
= 0;
for (w = 0; w < 6; w++){
for (d = 0; d < 7; d++){
with (cellText[(
7*w)+d]) {
Victor 
= i++;
if (myMonth[w+1][d]<0) {
color 
= gcGray;
innerText 
= -myMonth[w+1][d];
}
else{
color 
= ((d==0)||(d==6))?"red":"black";
innerText 
= myMonth[w+1][d];
}
}
}
}
}
function fSetYearMon(iYear, iMon){
sxYear 
= iYear;
sxMonth 
= iMon;
yeartd1.innerText 
= sxYear + "";
monthtd1.innerText 
= gMonths[sxMonth-1];
document.all.tbSelMonth.options[iMon
-1].selected = true;
for (i = 0; i < document.all.tbSelYear.length; i++){
if (document.all.tbSelYear.options[i].value == iYear){
document.all.tbSelYear.options[i].selected 
= true;
}
}
fUpdateCal(iYear, iMon);
}
function fPrevMonth(){
var iMon 
= document.all.tbSelMonth.value;
var iYear 
= document.all.tbSelYear.value;
if (--iMon<1) {
iMon 
= 12;
iYear
--;
}
fSetYearMon(iYear, iMon);
}
function fNextMonth(){
var iMon 
= document.all.tbSelMonth.value;
var iYear 
= document.all.tbSelYear.value;
if (++iMon>12) {
iMon 
= 1;
iYear
++;
}
fSetYearMon(iYear, iMon);
}
function fGetXY(aTag){
var oTmp 
= aTag;
var pt 
= new Point(0,0);
do {
pt.x 
+= oTmp.offsetLeft;
pt.y 
+= oTmp.offsetTop;
oTmp 
= oTmp.offsetParent;
while(oTmp.tagName!="BODY");
return pt;
}
with (document){
write(
"<Div id='PopCal' onclick='event.cancelBubble=true' style='POSITION:absolute; VISIBILITY: hidden; bordercolor:#000000;border:2px ridge;width:10;z-index:100;'>");
write(
"<table id='popTable' border='1' bgcolor='#eeede8' cellpadding='0' cellspacing='0' style='font-size:12px'>");
write(
"<TR>");
write(
"<td valign='middle' align='center' style='cursor:default'>");
write(
"<table width='176' border='0' cellpadding='0' cellspacing='0'>");
write(
"<tr align='center'>");
write(
"<td height='22' width='20' name='PrevMonth' style='font-family:\"webdings\";font-size:15px' onClick='fPrevMonth()' onmouseover='this.style.color=\"#ff9900\"' onmouseout='this.style.color=\"\"'>3</td>");
write(
"<td width='64' id='yeartd1' style='font-size:12px' onmouseover='yeartd1.style.display=\"none\";yeartd2.style.display=\"\";' onmouseout='this.style.background=\"\"'>");
write(sxYear 
+ "");
write(
"</td>");
write(
"<td width='64' id='yeartd2' style='display:none' onmouseout='yeartd2.style.display=\"none\";yeartd1.style.display=\"\";'>");
write(
"<SELECT style='width:64px;font-size: 12px;font-family: 宋体;' id='tbSelYear' onChange='fUpdateCal(document.all.tbSelYear.value, document.all.tbSelMonth.value);yeartd2.style.display=\"none\";yeartd1.style.display=\"\";' Victor='Won'>");
for(i=1930;i<2015;i++){
write(
"<OPTION value='"+i+"'>"+i+"年</OPTION>");
}
write(
"</SELECT>");
write(
"</td>");
write(
"<td width='72' id='monthtd1' style='font-size:12px' onmouseover='monthtd1.style.display=\"none\";monthtd2.style.display=\"\";' onmouseout='this.style.background=\"\"'>");
write(gMonths[sxMonth
-1]);
write(
"</td>");
write(
"<td width='72' id='monthtd2' style='display:none' onmouseout='monthtd2.style.display=\"none\";monthtd1.style.display=\"\";'>");
write(
"<select style='width:72px;font-size: 12px;font-family: 宋体;' id='tbSelMonth' onChange='fUpdateCal(document.all.tbSelYear.value, document.all.tbSelMonth.value);monthtd2.style.display=\"none\";monthtd1.style.display=\"\";' Victor='Won'>");
for (i=0; i<12; i++){
write(
"<option value='"+(i+1)+"'>"+gMonths[i]+"</option>");
}
write(
"</SELECT>");
write(
"</td>");
write(
"<td width='20' name='PrevMonth' style='font-family:\"webdings\";font-size:15px' onclick='fNextMonth()' onmouseover='this.style.color=\"#ff9900\"' onmouseout='this.style.color=\"\"'>4</td>");
write(
"</tr>");
write(
"</table>");
write(
"</td></TR><TR><td align='center'>");
write(
"<DIV style='background-color:teal;'><table width='100%' border='0' bgcolor='threedface' cellpadding='0' cellspacing='0'>");
fDrawCal(giYear, giMonth, giDay, 
1914);
write(
"</table></DIV>");
write(
"</td></TR><TR><TD height='20' align='center' valign='bottom'>");
write(
"<font style='cursor:hand;font-size:12px' onclick='fSetDate(0,0,0)' onMouseOver='this.style.color=\"#0033FF\"' onMouseOut='this.style.color=0'>清空</font>");
write(
"&nbsp;&nbsp;&nbsp;&nbsp;");
write(
"<font style='cursor:hand;font-size:12px' onclick='fSetDate(giYear,giMonth,giDay)' onMouseOver='this.style.color=\"#0033FF\"' onMouseOut='this.style.color=0'>今天: "+giYear+"-"+giMonth+"-"+giDay+"</font>");
write(
"</TD></TR></TD></TR></TABLE>");
write(
"</Div>");
}
</script> 

posted on 2007-03-13 09:26  网络安全、asp、asp.net编程  阅读(1180)  评论(0编辑  收藏  举报

导航