calendar.js
上传用户:jhtang88
上传日期:2014-01-27
资源大小:28528k
文件大小:6k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. // 判断浏览器
  2.     isIE = (document.all ? true : false);
  3.     // 初始月份及各月份天数数组
  4.     var months = new Array("一 月", "二 月", "三 月", "四 月", "五 月", "六 月", "七 月",
  5.  "八 月", "九 月", "十 月", "十一月", "十二月");
  6.     var daysInMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31,
  7.             30, 31, 30, 31);
  8. var displayMonth = new Date().getMonth();
  9. var displayYear = new Date().getFullYear();
  10. var displayDivName;
  11. var displayElement;
  12. var dayCountOfMonth = 0; // 用以记录所显示月中的天数
  13. function getXBrowserRef(eltname) {
  14.  return (isIE ? document.all[eltname].style : document.layers[eltname]);
  15. }
  16. function hideElement(eltname) { getXBrowserRef(eltname).visibility = 'hidden'; }
  17.     function getDays(month, year) {
  18.      //测试选择的年份是否是润年?
  19.         if (1 == month)
  20.          return ((0 == year % 4) && (0 != (year % 100))) ||
  21.                   (0 == year % 400) ? 29 : 28;
  22.         else
  23.             return daysInMonth[month];
  24.     }
  25.     function getToday() {
  26.         // 得到今天的日期
  27.         this.now = new Date();
  28.         this.year = this.now.getFullYear();
  29.         this.month = this.now.getMonth();
  30.         this.day = this.now.getDate();
  31.     }
  32.     // 并显示今天这个月份的日历
  33.     today = new getToday();
  34. // dispMonth以1开始
  35. function newCalendar(eltName, dispYear, dispMonth) {
  36. var args = newCalendar.arguments;
  37. if (args.length>=2) {
  38. displayYear = dispYear;
  39. }
  40. if (args.length==3) {
  41. displayMonth = dispMonth - 1;
  42. }
  43. today = new getToday();
  44.         var parseYear;
  45. parseYear = parseInt(displayYear + '');
  46.         var newCal = new Date(parseYear,displayMonth,1);
  47.         var day = -1;
  48.         var startDayOfWeek = newCal.getDay();
  49.         if ((today.year == newCal.getFullYear()) &&
  50.            (today.month == newCal.getMonth()))
  51.     {
  52.          day = today.day;
  53.         }
  54.         var intDaysInMonth = getDays(newCal.getMonth(), newCal.getFullYear());
  55.         var daysGrid = makeDaysGrid(startDayOfWeek,day,intDaysInMonth,newCal,eltName)
  56.     if (isIE) {
  57.        var elt = document.all[eltName];
  58.        elt.innerHTML = daysGrid;
  59.     } 
  60. else {
  61.        var elt = document.layers[eltName].document;
  62.        elt.open();
  63.        elt.write(daysGrid);
  64.        elt.close();
  65.     }
  66.  }
  67.  function incMonth(delta,eltName) {
  68.    displayMonth += delta;
  69.    if (displayMonth >= 12) {
  70.      displayMonth = 0;
  71.      incYear(1,eltName);
  72.    } else if (displayMonth <= -1) {
  73.      displayMonth = 11;
  74.      incYear(-1,eltName);
  75.    } else {
  76.      // newCalendar(eltName);
  77.  window.location.href = "?userName=" + userName + "&year=" + displayYear + "&month=" + (displayMonth+1);
  78.    }
  79.  }
  80.  function incYear(delta,eltName) {
  81.    displayYear = parseInt(displayYear + '') + delta;
  82.    // newCalendar(eltName);
  83.    window.location.href = "?userName=" + userName + "&year=" + displayYear + "&month=" + (displayMonth+1);
  84.  }
  85.  function makeDaysGrid(startDay,day,intDaysInMonth,newCal,eltName) {
  86. var daysGrid;
  87.     var month = newCal.getMonth();
  88.     var year = newCal.getFullYear();
  89.     var isThisYear = (year == new Date().getFullYear());
  90.     var isThisMonth = (day > -1)
  91.     daysGrid = '<table align=center border=0 cellspacing=0 cellpadding=2 width=100%><tr><td align="center" colspan="7" class="blog_calendar_td_header" nowrap>';
  92.     daysGrid += '<font face="courier new, courier" size=2>';
  93.     daysGrid += '&nbsp;&nbsp;';
  94.     daysGrid += '<a href="javascript:incMonth(-1,'' + eltName + '')">&laquo; </a>';
  95.     daysGrid += '<b>';
  96. daysGrid += months[month];
  97.     daysGrid += '</b>';
  98.     daysGrid += '<a href="javascript:incMonth(1,'' + eltName + '')"> &raquo;</a>';
  99.     daysGrid += '&nbsp;&nbsp;&nbsp;';
  100.     daysGrid += '<a href="javascript:incYear(-1,'' + eltName + '')">&laquo; </a>';
  101.     daysGrid += '<b>';
  102. daysGrid += ''+year+'&nbsp;年';
  103.     daysGrid += '</b>';
  104.     daysGrid += '<a href="javascript:incYear(1,'' + eltName + '')"> &raquo;</a></td></tr>';
  105.     daysGrid += '<tr><td align="center">日</td><td align="center">一</td><td align="center">二</td><td align="center">三</td><td align="center">四</td><td align="center">五</td><td align="center">六</td></tr>';
  106.     var dayOfMonthOfFirstSunday = (7 - startDay + 1);
  107. daysGrid += "<tr>"
  108. var count = 0;
  109.     for (var intWeek = 0; intWeek < 6; intWeek++) {
  110.        var dayOfMonth;
  111.        for (var intDay = 0; intDay < 7; intDay++) {
  112.          dayOfMonth = (intWeek * 7) + intDay + dayOfMonthOfFirstSunday - 7;
  113.      if (dayOfMonth <= 0) {
  114.           daysGrid += "<td>&nbsp;</td>";
  115.      }
  116.      else if (dayOfMonth <= intDaysInMonth) {
  117.    count++;
  118.    var color = "blue";
  119.    if (day > 0 && day == dayOfMonth)
  120.     color="red";
  121.    daysGrid += '<td align="center" id=day' + count + ' name=day' + count + '>';
  122.    // 将当日以红色显示
  123.    daysGrid += '<a href="#">';
  124.    var dayString = dayOfMonth;
  125.    if (dayString.length == 1)
  126.     dayString = '0' + dayString;
  127.    daysGrid += dayString
  128.    daysGrid += "</a>";
  129.    daysGrid += "</td>";
  130.     }
  131.   }
  132.       dayCountOfMonth = count;
  133.   var dayspan = dayOfMonth-count;
  134.   if (dayOfMonth < intDaysInMonth)
  135.    daysGrid += "</tr>"
  136.   else
  137.   {
  138. if (dayspan<7 && dayspan>0){
  139. for (var k=0; k<dayspan; k++) {
  140. daysGrid += "<td>&nbsp;</td>"
  141. }
  142. daysGrid += "</tr>"
  143. }
  144.    }
  145.    }
  146.    return daysGrid + "</table>";
  147. }
  148. function setDay(dayOfMonth) {
  149. }