奥运倒计时

<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)
return null
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
return true // is leap year
return false // 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>
posted @ 2008-02-14 19:06  龍峸.大卫  阅读(261)  评论(0编辑  收藏  举报