LeftCalendar.js
上传用户:autodoor
上传日期:2022-08-04
资源大小:9973k
文件大小:5k
源码类别:

.net编程

开发平台:

Others

  1. var gdCtrl = new Object();
  2. var goSelectTag = new Array();
  3. var gcGray = "#808080";
  4. var gcToggle = "#FFFF00";
  5. var gcred = "#FF0000";
  6. var gcBG = "#F8F9EE";
  7. var gcGreen = "#00FF00"
  8. var gdCurDate = new Date();
  9. var giYear = gdCurDate.getFullYear();
  10. var giMonth = gdCurDate.getMonth()+1;
  11. var giDay = gdCurDate.getDate();
  12. function fSetDate(iYear, iMonth, iDay){
  13.   gdCtrl.value = iYear+"-"+iMonth+"-"+iDay;
  14. }
  15. function fSetSelected(aCell){                                        
  16.   var iOffset = 0;
  17.   var iYear =parseInt(tbSelYear.value);//动态改变文本框的年
  18.   var iMonth = parseInt(tbSelMonth.value);//动态改变文本框的月
  19.   aCell.bgColor = gcBG;
  20.   with (aCell.children["cellText"]){
  21.    var iDay = parseInt(innerText);
  22.    if (color==gcGray)
  23. iOffset = (Victor<10)?-1:1;
  24. iMonth += iOffset;
  25. if (iMonth<1) {
  26. iYear--;
  27. iMonth = 12;
  28. }else if (iMonth>12){
  29. iYear++;
  30. iMonth = 1;
  31. }
  32.   }
  33.   this.top.frames[2].location = "Schedule/SchedByDay.aspx?date="+iYear+"-"+iMonth+"-"+iDay;
  34. }
  35. function fBuildCal(iYear, iMonth) {
  36.   var aMonth=new Array();
  37.   for(i=1;i<7;i++)
  38.    aMonth[i]=new Array(i);
  39.   var dCalDate=new Date(iYear, iMonth-1, 1);
  40.   var iDayOfFirst=dCalDate.getDay();
  41.   var iDaysInMonth=new Date(iYear, iMonth, 0).getDate();
  42.   var iOffsetLast=new Date(iYear, iMonth-1, 0).getDate()-iDayOfFirst+1;
  43.   var iDate = 1;
  44.   var iNext = 1;
  45.   for (d = 0; d < 7; d++)
  46. aMonth[1][d] = (d<iDayOfFirst)?-(iOffsetLast+d):iDate++;
  47.   for (w = 2; w < 7; w++)
  48.    for (d = 0; d < 7; d++)
  49. aMonth[w][d] = (iDate<=iDaysInMonth)?iDate++:-(iNext++);
  50.   return aMonth;
  51. }
  52. function fDrawCal(iYear, iMonth, iCellHeight, iDateTextSize) {
  53.   var WeekDay = new Array("日","一","二","三","四","五","六");
  54.   var styleTD = " bgcolor='"+gcBG+"' valign='middle' align='center' height='"+iCellHeight+"' style='font-size:9pt "+iDateTextSize+" 宋体;";
  55.   with (document) {
  56. write("<tr>");
  57. for(i=0; i<7; i++)
  58. write("<td "+styleTD+"color:purple'>" + WeekDay[i] + "</td>");
  59. write("</tr>");
  60.    for (w = 1; w < 7; w++) {
  61. write("<tr>");
  62. for (d = 0; d < 7; d++) {
  63. write("<td id=calCell "+styleTD+"cursor:hand;' onMouseOver='this.bgColor=gcToggle' onMouseOut='this.bgColor=gcBG' onclick='fSetSelected(this)'>");
  64. write("<font id=cellText Victor='Liming Weng'> </font>");
  65. write("</td>")
  66. }
  67. write("</tr>");
  68. }
  69.   }
  70. }
  71. function fUpdateCal(iYear, iMonth) {
  72.   myMonth = fBuildCal(iYear, iMonth);
  73.   var i = 0;
  74.   for (w = 0; w < 6; w++)
  75. for (d = 0; d < 7; d++)
  76. with (cellText[(7*w)+d]) {
  77. Victor = i++;
  78. if (myMonth[w+1][d]<0) {
  79. color = gcGray;
  80. innerText = -myMonth[w+1][d];
  81. }else{
  82. if (myMonth[w+1][d] == giDay && iYear == giYear && iMonth == giMonth)
  83. {
  84. //color = ((d==0)||(d==6))?"blue":"black";
  85. color = "red";
  86. innerText = myMonth[w+1][d];
  87. }
  88. else
  89. {
  90. color = ((d==0)||(d==6))?"blue":"black";
  91. innerText = myMonth[w+1][d];
  92. }
  93. }
  94. }
  95. }
  96. //该函数动态改变年后引起表格中的变化
  97. function fSetYearMon(iYear, iMon){
  98.   tbSelMonth.options[iMon-1].selected = true;
  99.   for (i = 0; i < tbSelYear.length; i++)
  100. if (tbSelYear.options[i].value == iYear)
  101. tbSelYear.options[i].selected = true;
  102.   fUpdateCal(iYear, iMon);//将改变厚的值传给fUpdateCal()以便以在表格中显示变化
  103. }
  104. function fPrevMonth(){
  105.   var iMon = tbSelMonth.value;
  106.   var iYear = tbSelYear.value;
  107.   if (--iMon<1) {
  108.   iMon = 12;
  109.   iYear--;
  110.   }
  111.   fSetYearMon(iYear, iMon);
  112. }
  113. function fNextMonth(){
  114.   var iMon = tbSelMonth.value;
  115.   var iYear = tbSelYear.value;
  116.   if (++iMon>12) {
  117.   iMon = 1;
  118.   iYear++;
  119.   }
  120.   fSetYearMon(iYear, iMon);
  121. }
  122. function ShowCalendar()
  123. {
  124. var gMonths = new Array("&nbsp;1月","&nbsp;2月","&nbsp;3月","&nbsp;4月","&nbsp;5月","&nbsp;6月","&nbsp;7月","&nbsp;8月","&nbsp;9月","10月","11月","12月");
  125. with (document) {
  126. write("<table border='0' bgcolor='#F8F9EE'>");
  127. write("<TR>");
  128. write("<td valign='middle' align='center'><input type='button' name='PrevMonth' value='<' style='height:18;width:18' onClick='fPrevMonth()'>");
  129. write("&nbsp;<SELECT name='tbSelYear' onChange='fUpdateCal(tbSelYear.value, tbSelMonth.value)' style='font-color:#000080;width:50;border:1 solid #99CCFF; font-size:9pt; background-color:#F8F9EE' Victor='Won'>");
  130. for(i=1900;i<=2100;i++)
  131. write("<OPTION value='"+i+"'>"+i+"</OPTION>");
  132. write("</SELECT>");
  133. write("<select name='tbSelMonth' onChange='fUpdateCal(tbSelYear.value, tbSelMonth.value)'  style='font-color:#000080;width:50;border:0 solid #99CCFF; font-size:9pt; background-color:#F8F9EE' Victor='Won'>");
  134. for (i=0; i<12; i++)
  135. write("<option value='"+(i+1)+"'>"+gMonths[i]+"</option>");
  136. write("</SELECT>");
  137. write("&nbsp;<input type='button' name='PrevMonth' value='>' style='height:18;width:18' onclick='fNextMonth()'>");
  138. write("</td>");
  139. write("</TR><TR>");
  140. write("<td align='center'>");
  141. write("<table border='0' cellspacing='0' cellpadding='0' width='100%'><tr><td><table border='0' cellspacing='0' width='100%' cellpadding='0'>");
  142. fDrawCal(giYear, giMonth, 12, 12);
  143. write("</table></td></tr></table>");
  144. write("</td></TR></TABLE>");
  145. fSetYearMon(giYear, giMonth)
  146. }
  147. }