Blog日历表JS代码

<!-- Blog日历表开始 -->
<script language="javascript">
var diarydays="<2004-10-11><2004-10-10>";
</script>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
.calendarBigBorder { font-family: "Arial", "Helvetica", "sans-serif", "宋体"; text-decoration: none; width: 170; background-color: #FFFFFF; font-size: 9pt;border:1px dotted #999; }
.calendarTd { font-family: "Arial", "Helvetica", "sans-serif", "宋体"; font-size: 9pt; color: #000000; background-color: #eeeeee; height: 18px; width: 11%; text-align: center;}
.calendarMInput { font-family: "Arial", "Helvetica", "sans-serif", "宋体"; font-size: 9pt; text-decoration: none; background-color: #FFFFFF; height: 15px; border: 1px solid #666666; width: 19px; color: #0099FF;}
.calendarYInput { font-family: "Arial", "Helvetica", "sans-serif", "宋体"; font-size: 9pt; color: #0099FF; text-decoration: none; background-color: #FFFFFF; height: 15px; width: 34px; border: 1px solid #666666;}
.calendarMonthTitle { font-family: "Arial", "Helvetica", "sans-serif", "宋体"; font-size: 9pt; font-weight: normal; height: 24px; text-align: center; color: #333333; text-decoration: none; background-color: #eeeeee; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-bottom-style: none; border-top-color: #999999; border-right-color: #999999; border-bottom-color: #999999; border-left-color: #999999;}
.calendarNow { font-family: "Arial", "Helvetica", "sans-serif", "宋体"; font-size: 9pt; font-weight: bold; color: #000000; background-color: #C0C9D3; height: 18px; text-align: center;}
.calendarDaySat { font-family: "Arial", "Helvetica", "sans-serif", "宋体"; font-size: 9pt; color: #333333; text-decoration: none; background-color: #eeeeee; text-align: center; height: 18px; width: 12%;}
.calendarDaySun { font-family: "Arial", "Helvetica", "sans-serif", "宋体"; font-size: 9pt; color: #333333; text-decoration: none; background-color: #eeeeee; text-align: center; height: 18px; width: 12%;}
.calendarLink { font-family: "Arial", "Helvetica", "sans-serif", "宋体"; font-size: 9pt; font-weight: normal; color: #333333; text-decoration: none; background-color: #E7E7F6; text-align: center; height: 18px;}
.categoryTxt { font-family: "Arial", "Helvetica", "sans-serif", "宋体"; font-size: 9pt; line-height: 23px; color: #333333; text-decoration: none;}
.categoryTable { border-right-width: 1px; border-bottom-width: 1px; border-right-style: solid; border-bottom-style: solid; border-left-style: none; border-right-color: #000000; border-bottom-color: #000000; border-top-width: 1px; border-top-style: solid; border-top-color: #71b99c;}
</style>
<SCRIPT LANGUAGE="JavaScript">
var months = new Array("一", "二", "三","四", "五", "六", "七", "八", "九","十", "十一", "十二");
var daysInMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31,30, 31, 30, 31);
var days = new Array("日","一", "二", "三","四", "五", "六");
var classTemp;
var calendarHover="calendarHover";
var today=new getToday();
var year=today.year;
var month=today.month;
var newCal;
//得到某月天数
function getDays(month, year)
{ if (1 == month)
     return ((0 == year % 4) && (0 != (year % 100))) ||(0 == year % 400) ? 29 : 28;
  else
     return daysInMonth[month];
}
//得到当天时间信息
function getToday()
{  this.now = new Date();
   this.year = this.now.getFullYear();
   this.month = this.now.getMonth();
   this.day = this.now.getDate();
}

//生成日历
function Calendar()
{  newCal = new Date(year,month,1); //当前月的第一天
   today = new getToday();  
   var day = -1;   //用来判断日历中是否为当天
   var startDay = newCal.getDay(); //当月开始时间
   var endDay=getDays(newCal.getMonth(), newCal.getFullYear());//当月结束时间
   var daily = 0;   //用来生成日历中的天数值
   if ((today.year == newCal.getFullYear()) &&(today.month == newCal.getMonth()))
      day = today.day;
   var caltable = document.all.caltable.tBodies.calendar;  //得到日历表格的集合
   var intDaysInMonth =getDays(newCal.getMonth(), newCal.getFullYear()); //得到当月天数
   //生成日历
   for (var intWeek = 0; intWeek < caltable.rows.length;intWeek++)
     for (var intDay = 0;intDay < caltable.rows[intWeek].cells.length;intDay++)
     {
      var cell = caltable.rows[intWeek].cells[intDay];   //得到单元袼
   //生成字符串用于判断当天是否有日志
      var montemp=(newCal.getMonth()+1)<10?("0"+(newCal.getMonth()+1)):(newCal.getMonth()+1);        
      if ((intDay == startDay) && (0 == daily)){ daily = 1;}
      var daytemp=daily<10?("0"+daily):(daily);
      var d="<"+newCal.getFullYear()+"-"+montemp+"-"+daytemp+">";
   //选择样式
      if(day==daily)
      cell.className="calendarNow";
      else if(diarydays.indexOf(d)!=-1)
         cell.className="calendarLink";
      else if(intDay==6)
      cell.className = "calendarDaySat";
      else if (intDay==0)
      cell.className ="calendarDaySun";
      else
      cell.className="calendarTd";
   //生成值
      if ((daily > 0) && (daily <= intDaysInMonth)) 
      {  cell.innerText = daily;
         daily++;
      }
      else
        cell.innerText = "";
    } 
  document.all.year.value=year;
  document.all.month.value=month+1;
}

function subMonth()
{
  if ((month-1)<0)
  {
     month=11;
  year=year-1;
  }
  else
  {
    month=month-1;
  }
  Calendar();
}
function addMonth()
{
  if((month+1)>11)
  {
    month=0;
    year=year+1;
  }
  else
  {
    month=month+1;
  }
  Calendar();
}
//得到响应事件
function getDiary()
{
  var mon=(newCal.getMonth()+1)<10?("0"+(newCal.getMonth()+1)):(newCal.getMonth()+1);
  var day=event.srcElement.innerText<10?("0"+event.srcElement.innerText):(event.srcElement.innerText);
  var d="<"+newCal.getFullYear()+"-"+mon+"-"+day+">";
  if ("TD" == event.srcElement.tagName)
  if (("" != event.srcElement.innerText)&&(diarydays.indexOf(d)!=-1))
  {
   diary.location="/listenwind/archive/"+newCal.getFullYear()+"/"+mon+"/"+day+".aspx";
   window.location.href = diary.location;
  }
}

function setDate()
{
  if (document.all.month.value<1||document.all.month.value>12)
  {
    alert("月的有效范围在1-12之间!");
 return;
  }
  year=Math.ceil(document.all.year.value);
  month=Math.ceil(document.all.month.value-1);
  Calendar();
}
</SCRIPT>
<table border="0" cellpadding="0" cellspacing="1" class="calendarBigBorder" id="caltable" width="200">
<thead>
     <tr align="center" valign="middle">
    <td colspan="7" class="calendarMonthTitle">
   <input name="year" type="text" class="calendarYInput" size="3" maxlength="4" οnkeydοwn="if (event.keyCode==13){setDate()}" οnkeyup="this.value=this.value.replace(/[^0-9]/g,'')"  οnpaste="this.value=this.value.replace(/[^0-9]/g,'')">年
   <input name="month" type="text" class="calendarMInput" size="1" maxlength="2" οnkeydοwn="if (event.keyCode==13){setDate()}" οnkeyup="this.value=this.value.replace(/[^0-9]/g,'')"  οnpaste="this.value=this.value.replace(/[^0-9]/g,'')">月 [<a onClick="addMonth()" href="javascript:;">下月</a>] [<a  onClick="subMonth()" href="javascript:;">上月</a>]</td>
  </tr>
 <tr align="center" valign="middle">
 <SCRIPT LANGUAGE="JavaScript">  
 document.write("<TD class=calendarDaySun id=diary>" + days[0] + "</TD>");
 for (var intLoop = 1; intLoop < days.length-1;
 intLoop++)
 document.write("<TD class=calendarTd id=diary>" + days[intLoop] + "</TD>");
 document.write("<TD class=calendarDaySat id=diary>" + days[intLoop] + "</TD>");
 </SCRIPT>
 </TR>
</thead>
  <TBODY border=1 cellspacing="0" cellpadding="0" ID="calendar" ALIGN=CENTER ONCLICK="getDiary()" οnmοuseup=document.selection.empty() οncοntextmenu="return false" onselectstart="return false" οndragstart="return false" onbeforecopy="return false" οncοpy=document.selection.empty() οnselect=document.selection.empty()>
    <SCRIPT LANGUAGE="JavaScript">
  for (var intWeeks = 0; intWeeks < 6; intWeeks++) {
  document.write("<TR style='cursor:hand'>");
  for (var intDays = 0; intDays < days.length;intDays++)
  document.write("<TD class=calendarTd onMouseover='{classTemp=this.className;this.className=calendarHover}' onMouseOut='this.className=classTemp'></TD>");
  document.write("</TR>");
  } 
 </SCRIPT>
  </tbody>
 </table>
<script  LANGUAGE="JavaScript">
Calendar();
</script>
<!-- Blog日历表结束 -->

示例如下:

<script language="javascript"> var diarydays="<2004-10-11><2004-10-10>"; </script> <script LANGUAGE="JavaScript"> var months = new Array("一", "二", "三","四", "五", "六", "七", "八", "九","十", "十一", "十二"); var daysInMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31,30, 31, 30, 31); var days = new Array("日","一", "二", "三","四", "五", "六"); var classTemp; var calendarHover="calendarHover"; var today=new getToday(); var year=today.year; var month=today.month; var newCal; //得到某月天数 function getDays(month, year) { if (1 == month) return ((0 == year % 4) && (0 != (year % 100))) ||(0 == year % 400) ? 29 : 28; else return daysInMonth[month]; } //得到当天时间信息 function getToday() { this.now = new Date(); this.year = this.now.getFullYear(); this.month = this.now.getMonth(); this.day = this.now.getDate(); } //生成日历 function Calendar() { newCal = new Date(year,month,1); //当前月的第一天 today = new getToday(); var day = -1; //用来判断日历中是否为当天 var startDay = newCal.getDay(); //当月开始时间 var endDay=getDays(newCal.getMonth(), newCal.getFullYear());//当月结束时间 var daily = 0; //用来生成日历中的天数值 if ((today.year == newCal.getFullYear()) &&(today.month == newCal.getMonth())) day = today.day; var caltable = document.all.caltable.tBodies.calendar; //得到日历表格的集合 var intDaysInMonth =getDays(newCal.getMonth(), newCal.getFullYear()); //得到当月天数 //生成日历 for (var intWeek = 0; intWeek < caltable.rows.length;intWeek++) for (var intDay = 0;intDay < caltable.rows[intWeek].cells.length;intDay++) { var cell = caltable.rows[intWeek].cells[intDay]; //得到单元袼 //生成字符串用于判断当天是否有日志 var montemp=(newCal.getMonth()+1)<10?("0"+(newCal.getMonth()+1)):(newCal.getMonth()+1); if ((intDay == startDay) && (0 == daily)){ daily = 1;} var daytemp=daily<10?("0"+daily):(daily); var d="<"+newCal.getFullYear()+"-"+montemp+"-"+daytemp+">"; //选择样式 if(day==daily) cell.className="calendarNow"; else if(diarydays.indexOf(d)!=-1) cell.className="calendarLink"; else if(intDay==6) cell.className = "calendarDaySat"; else if (intDay==0) cell.className ="calendarDaySun"; else cell.className="calendarTd"; //生成值 if ((daily > 0) && (daily <= intDaysInMonth)) { cell.innerText = daily; daily++; } else cell.innerText = ""; } document.all.year.value=year; document.all.month.value=month+1; } function subMonth() { if ((month-1)<0) { month=11; year=year-1; } else { month=month-1; } Calendar(); } function addMonth() { if((month+1)>11) { month=0; year=year+1; } else { month=month+1; } Calendar(); } //得到响应事件 function getDiary() { var mon=(newCal.getMonth()+1)<10?("0"+(newCal.getMonth()+1)):(newCal.getMonth()+1); var day=event.srcElement.innerText<10?("0"+event.srcElement.innerText):(event.srcElement.innerText); var d="<"+newCal.getFullYear()+"-"+mon+"-"+day+">"; if ("TD" == event.srcElement.tagName) if (("" != event.srcElement.innerText)&&(diarydays.indexOf(d)!=-1)) { diary.location="/listenwind/archive/"+newCal.getFullYear()+"/"+mon+"/"+day+".aspx"; window.location.href = diary.location; } } function setDate() { if (document.all.month.value<1||document.all.month.value>12) { alert("月的有效范围在1-12之间!"); return; } year=Math.ceil(document.all.year.value); month=Math.ceil(document.all.month.value-1); Calendar(); } </script>
月 [下月] [上月]
<script LANGUAGE="JavaScript"> document.write("
" + days[0] + "
"); for (var intLoop = 1; intLoop < days.length-1; intLoop++) document.write("
" + days[intLoop] + "
"); document.write("
" + days[intLoop] + "
"); </script>
<script LANGUAGE="JavaScript"> for (var intWeeks = 0; intWeeks < 6; intWeeks++) { document.write("
"); for (var intDays = 0; intDays < days.length;intDays++) document.write("
"); document.write(" "); } </script> <script LANGUAGE="JavaScript"> Calendar(); </script>
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值