<html> <head> <title>无标题文档</title> <meta http-equiv="Content-Type" c> </head> <body bgcolor="#FFFFFF" text="#000000"><script LANGUAGE="JavaScript"> <!-- var caution =false function setCookie(name, value, expires, path, domain, secure) { var curCookie = name +"="+ escape(value) + ((expires) ?"; expires="+ expires.toGMTString() : "") + ((path) ?"; path="+ path : "") + ((domain) ?"; domain="+ domain : "") + ((secure) ?"; secure" : "") if (!caution || (name +"="+ escape(value)).length <=4000) document.cookie = curCookie else if (confirm("Cookie exceeds 4KB and will be cut!")) document.cookie = curCookie } // name - name of the desired cookie // * return string containing value of specified cookie or null if cookie does not exist function getCookie(name) { var prefix = name +"=" var cookieStartIndex = document.cookie.indexOf(prefix) if (cookieStartIndex ==-1) returnnull var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length) if (cookieEndIndex ==-1) cookieEndIndex = document.cookie.length return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex)) } function deleteCookie(name, path, domain) { if (getCookie(name)) { document.cookie = name +"="+ ((path) ?"; path="+ path : "") + ((domain) ?"; domain="+ domain : "") + "; expires=Thu, 01-Jan-70 00:00:01 GMT" } } function fixDate(date) { var base=new Date(0) var skew =base.getTime() if (skew >0) date.setTime(date.getTime() - skew) } function initCookie(monthName) { var text ="" for (var i =1; i <=31; ++i) { text +="^"+ i +"^" } var now =new Date() fixDate(now) // set time to one month (31 days) in the future now.setTime(now.getTime() +1000*60*60*24*31) setCookie(monthName +"Calendar", text, now) } function getSpecificReminder(num, monthName) { var prefix ="^"+ num +"^" var totalCookie = getCookie(monthName +"Calendar") var startIndex = totalCookie.indexOf(prefix, 0) var startData = totalCookie.indexOf("^", startIndex +1) +1 if (num ==31) var endData = totalCookie.length else var endData = totalCookie.indexOf("^", startData) return totalCookie.substring(startData, endData) } function setSpecificReminder(num, monthName, newValue) { var prefix ="^"+ num +"^" var totalCookie = getCookie(monthName +"Calendar") var startIndex = totalCookie.indexOf(prefix, 0) var startData = totalCookie.indexOf("^", startIndex +1) +1 if (num ==31) var endData = totalCookie.length else var endData = totalCookie.indexOf("^", startData) var now =new Date() fixDate(now) // set time to one month (31 days) in the future now.setTime(now.getTime() +1000*60*60*24*31) setCookie(monthName +"Calendar", totalCookie.substring(0, startData) + newValue + totalCookie.substring(endData, totalCookie.length), now) } function getInput(num, monthName) { if (!getCookie(monthName +"Calendar")) initCookie(monthName) var newValue = prompt("今天要提醒的事为:", getSpecificReminder(num, monthName)) if (newValue) // user did not cancel setSpecificReminder(num, monthName, newValue) } function getTime() { // initialize time-related variables with current time settings var now =new Date() var hour = now.getHours() var minute = now.getMinutes() now =null var ampm ="" // validate hour values and set value of ampm if (hour >=12) { hour -=12 ampm ="PM" }else ampm ="AM" hour = (hour ==0) ?12 : hour // add zero digit to a one digit minute if (minute <10) minute ="0"+ minute // do not parse this number! // return time string return hour +":"+ minute +""+ ampm } function leapYear(year) { if (year %4==0) // basic rule returntrue// is leap year returnfalse// is not leap year } function getDays(month, year) { // create array to hold number of days in each month var ar =new Array(12) ar[0] =31// January ar[1] = (leapYear(year)) ?29 : 28// February ar[2] =31// March ar[3] =30// April ar[4] =31// May ar[5] =30// June ar[6] =31// July ar[7] =31// August ar[8] =30// September ar[9] =31// October ar[10] =30// November ar[11] =31// December // return number of days in the specified month (parameter) return ar[month] } function getMonthName(month) { // create array to hold name of each month var ar =new Array(12) ar[0] ="一月" ar[1] ="二月" ar[2] ="三月" ar[3] ="四月" ar[4] ="五月" ar[5] ="六月" ar[6] ="七月" ar[7] ="八月" ar[8] ="九月" ar[9] ="十月" ar[10] ="十一月" ar[11] ="十二月" // return name of specified month (parameter) return ar[month] } function setCal() { // standard time attributes var now =new Date() var year = now.getYear() var month = now.getMonth() var monthName = getMonthName(month) var date = now.getDate() now =null // create instance of first day of month, and extract the day on which it occurs var firstDayInstance =new Date(year, month, 1) var firstDay = firstDayInstance.getDay() firstDayInstance =null // number of days in current month var days = getDays(month, year) // call function to draw calendar drawCal(firstDay +1, days, date, monthName, year) } function drawCal(firstDay, lastDate, date, monthName, year) { // constant table settings var headerHeight =30// height of the table's header cell var border =1// 3D height of table's border var cellspacing =2// width of table's border var headerColor ="midnightblue"// color of table's header var headerSize ="+3"// size of tables header font var colWidth =50// width of columns in table var dayCellHeight =25// height of cells containing days of the week var dayColor ="darkblue"// color of font representing week days var cellHeight =20// height of cells representing dates in the calendar var todayColor ="red"// color specifying today's date in the calendar var timeColor ="purple"// color of font representing current time // create basic table structure var text =""// initialize accumulative variable to empty string text +='<CENTER>' text +='<TABLE BORDER='+ border +' CELLSPACING='+ cellspacing +'>'// table settings text +='<TH COLSPAN=7 ALIGN="center" VALIGN="center" HEIGHT='+ headerHeight +'>'// create table header cell text +='<FONT COLOR="'+ headerColor +'" SIZE='+ headerSize +'>'// set font for table header text += monthName +''+ year text +='</FONT>'// close table header's font settings text +='</TH>'// close header cell // variables to hold constant settings var openCol ='<TD ALIGN="center" VALIGN="center" WIDTH='+ colWidth +' HEIGHT='+ dayCellHeight +'>' openCol +='<FONT COLOR="'+ dayColor +'">' var closeCol ='</FONT></TD>' // create array of abbreviated day names var weekDay =new Array(7) weekDay[0] ="星期日" weekDay[1] ="星期一" weekDay[2] ="星期二" weekDay[3] ="星期三" weekDay[4] ="星期四" weekDay[5] ="星期五" weekDay[6] ="星期六" // create first row of table to set column width and specify week day text +='<TR ALIGN="center" VALIGN="center">' for (var dayNum =0; dayNum <7; ++dayNum) { text += openCol + weekDay[dayNum] + closeCol } text +='</TR>' // declaration and initialization of two variables to help with tables var digit =1 var curCell =1 for (var row =1; row <= Math.ceil((lastDate + firstDay -1) /7); ++row) { text +='<TR ALIGN="center" VALIGN="top">' for (var col =1; col <=7; ++col) { if (digit > lastDate) break if (curCell < firstDay) { text +='<TD></TD>'; curCell++ }else{ if (digit == date) { // current cell represent today's date text +='<TD HEIGHT='+ cellHeight +'>' text +='<FONT COLOR="'+ todayColor +'">' text +='<A HREF="javascript:getInput('+ digit +', \'' + monthName + '\')" ><FONT COLOR="'+ todayColor +'">'+ digit +'</FONT></A>' text +='<BR>' text +='<FONT COLOR="'+ timeColor +'" SIZE=2>' text +='<CENTER>'+ getTime() +'</CENTER>' text +='</FONT>' text +='</TD>' }else text +='<TD HEIGHT='+ cellHeight +'><A HREF="javascript:getInput('+ digit +', \'' + monthName + '\')" >'+ digit +'</A></TD>' digit++ } } text +='</TR>' } // close all basic table tags text +='</TABLE>' text +='</CENTER>' // print accumulative HTML string document.write(text) } setCal() // --> </script> </body> </html>