Calendar 实现(JS)

<%@ page contentType="text/html; charset=GBK"%> <%@page import="java.util.*;"%> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%> <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%> <%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%> <%@ taglib uri="/WEB-INF/eoffice-utils.tld" prefix="eoffice"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <html:base /> <meta http-equiv="Content-Type" content="text/html; charset=GBK"> <META HTTP-EQUIV="pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"> <META HTTP-EQUIV="expires" CONTENT="0"> <mce:script type='text/javascript' src="js/tooltip1.js" mce_src="js/tooltip1.js"><!-- // --></mce:script> <mce:script type='text/javascript' src="../dwrcal/engine.js" mce_src="dwrcal/engine.js"><!-- // --></mce:script> <mce:script type='text/javascript' src="../dwrcal/util.js" mce_src="dwrcal/util.js"><!-- // --></mce:script> <mce:script type='text/javascript' src="../dwrcal/interface/calendarservice.js" mce_src="dwrcal/interface/calendarservice.js"></mce:script> <title>鸿程办公系统</title> <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 today=new getToday(); var year=today.year; var month=today.month; var newCal; var eventdays; 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() { <% Calendar today = Calendar.getInstance(Locale.SIMPLIFIED_CHINESE); int year = today.get(Calendar.YEAR); int month = today.get(Calendar.MONTH); int day = today.get(Calendar.DATE); String target = (String)request.getParameter("frame"); if( target == null) { target = "_blank"; } %> this.now = new Date(<%=year%>,<%=month%>,<%=day%>); 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 eventidx = 0; 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="DayNow"; else if(intDay==6) cell.className = "DaySat"; else if (intDay==0) cell.className ="DaySun"; else cell.className="Day"; if ((daily > 0) && (daily <= intDaysInMonth)) { cell.innerText = daily; if(eventidx < eventdays.length) { if(daily == eventdays[eventidx]) { if(day == daily) { cell.className="DayNowandEvent"; }else { cell.className = "DayEvent"; } eventidx ++; } } daily++; } else { cell.className="CalendarTD"; 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; } EventCalendar(); } function addMonth() { if((month+1)>11) { month=0; year=year+1; } else { month=month+1; } EventCalendar(); } 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); EventCalendar(); } </Script> <Script> function buttonOver() { var obj = window.event.srcElement; obj.runtimeStyle.cssText = "background-color:#FFFFFF"; if(obj.className == "DayEvent" || obj.className == "DayNowandEvent") { calendarservice.getScheduleContent(year,month+1,obj.innerText, { callback:function(data) { if(data.indexOf("Error:")==0) { alert(data); return; } if(data != "") { toolTip(data); } } }); } // obj.className="Hover"; } function buttonOut() { var obj = window.event.srcElement; window.setTimeout(function(){obj.runtimeStyle.cssText = "";},300); if(obj.className == "DayEvent" || obj.className == "DayNowandEvent") { toolTip(); } } function getDiary() { var obj = window.event.srcElement; var day = obj.innerHTML; if(day != null && day != '') { var p = document.all.year.value + '-' + document.all.month.value + '-' + day; <% if (target.equalsIgnoreCase("_blank")) { %> window.open('index.do?startdate='+p,'<%=target%>'); <% } else{ %> window.open('cal01.do?startdate='+p,'<%=target%>'); <% } %> } } </Script> <SCRIPT> function EventCalendar(){ calendarservice.getScheduleDays(year,month+1, { callback:function(data) { if(data.indexOf("Error:")==0) { alert(data); return; } eventdays = data.split(","); Calendar(); } }); } </SCRIPT> <Style> Input {font-family: verdana;font-size: 9pt;text-decoration: none;background-color: #FFFFFF;height: 20px;border: 1px solid #666666;color:#000000;} .Calendar {font-family: verdana;text-decoration: none;width: 170;background-color: #C0D0E8;font-size: 9pt;border:0px dotted #1C6FA5;} .CalendarTD {font-family: verdana;font-size: 7pt;color: #000000;background-color:#FFFFFF;height: 20px;width:11%;text-align: center;} .Title {font-family: verdana;font-size: 11pt;font-weight: normal;height: 24px;text-align: center;color: #333333;text-decoration: none;background-color: #8AC1F5;border-top-width: 1px;border-right-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-bottom-style:1px;border-top-color: #999999;border-right-color: #999999;border-bottom-color: #999999;border-left-color: #999999;} .Day {font-family: verdana;font-size: 7pt;color:#183984;background-color: #EDF4FF;height: 20px;width:11%;text-align: center;} .DaySat {font-family: verdana;font-size: 7pt;color:#FF0000;text-decoration: none;background-color:#EDF4FF;text-align: center;height: 18px;width: 12%;} .DaySun {font-family: verdana;font-size: 7pt;color: #FF0000;text-decoration: none;background-color:#EDF4FF;text-align: center;height: 18px;width: 12%;} .DayNow {font-family: verdana;font-size: 7pt;font-weight: bold;color: #000000;background-color: yellow;height: 20px;text-align: center;} .DayNowandEvent {font-family: verdana;font-size: 7pt;font-weight: bold;color: #000000;background-color: yellow;height: 20px;text-align: center;} .DayEvent {font-family: verdana;font-size: 7pt;font-weight: bold;color: #0033CC;background-color: #EDF4FF;height: 20px;text-align: center;} .DayTitle {font-family: verdana;font-size: 9pt;color: #000000;background-color: #B4D8FE;height: 20px;width:11%;text-align: center;} .DaySatTitle {font-family: verdana;font-size: 9pt;color:#FF0000;text-decoration: none;background-color:#B4D8FE;text-align: center;height: 20px;width: 12%;} .DaySunTitle {font-family: verdana;font-size: 9pt;color: #FF0000;text-decoration: none;background-color: #B4D8FE;text-align: center;height: 20px;width: 12%;} .DayButton {font-family: Webdings;font-size: 9pt;font-weight: bold;color: #243F65;cursor:hand;text-decoration: none;} </Style> </head> <body leftmargin="0" topmargin="0"> <table border="0" cellpadding="0" cellspacing="1" class="Calendar" id="caltable"> <thead> <tr align="center" valign="middle"> <td colspan="7" class="Title"> <a href="javaScript:subMonth();" mce_href="javaScript:subMonth();" title="上一月" Class="DayButton">3</a> <input name="year" id="year" type="text" size="4" 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" id=month type="text" 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 href="JavaScript:addMonth();" mce_href="JavaScript:addMonth();" title="下一月" Class="DayButton">4</a> </td> </tr> <tr align="center" valign="middle"> <Script LANGUAGE="JavaScript"> document.write("<TD class=DaySunTitle id=diary >" + days[0] + "</TD>"); for (var intLoop = 1; intLoop < days.length-1;intLoop++) document.write("<TD class=DayTitle id=diary>" + days[intLoop] + "</TD>"); document.write("<TD class=DaySatTitle id=diary>" + days[intLoop] + "</TD>"); </Script> </TR> </thead> <TBODY border=1 cellspacing="0" cellpadding="0" ID="calendar" ALIGN=CENTER ONCLICK="getDiary()"> <Script LANGUAGE="JavaScript"> for (var intWeeks = 0; intWeeks < 6; intWeeks++) { document.write("<TR style="cursor:hand" mce_style="cursor:hand">"); for (var intDays = 0; intDays < days.length;intDays++) document.write("<TD class=CalendarTD onMouseover='buttonOver();' onMouseOut='buttonOut();'></TD>"); document.write("</TR>"); } </Script> </TBODY> </TABLE> <Script LANGUAGE="JavaScript"> EventCalendar(); initToolTips(); </Script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值