温柔网

 找回密码
 注册

查看: 606|回复: 1

酷日历脚本

[复制链接]
发表于 2004-1-14 18:28:20 | 显示全部楼层 |阅读模式
看看源代码,俺已经比较详细地注释了,你只要稍微修改一下外观和颜色以适应你的页面即可。用CSS控制一下字体效果更好。到了2000年“99年”就会变成“2000年”。  
如下代码加入HTML的<BODY>区:
<script language="JavaScript">
<!-- Hide this script from old browsers --
setCal()
function getTime() {
// 初始化时间
var now = new Date()
var hour = now.getHours()
var minute = now.getMinutes()
now = null
var ampm = ""
// 时间检测,并设置上下午AM和PM
if (hour >= 12) {
hour -= 12
ampm = "M"
} 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
/* else */ // else not needed when statement is "return"
return false // is not leap year
}
function getDays(month, year) {
// 设定每月的天数数组
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 ar[month]
}
function getMonthName(month) {
// 为月份名称设定数组
var ar = new Array(12)
ar[0] = "1月"
ar[1] = "2月"
ar[2] = "3月"
ar[3] = "4月"
ar[4] = "5月"
ar[5] = "6月"
ar[6] = "7月"
ar[7] = "8月"
ar[8] = "9月"
ar[9] = "10月"
ar[10] = "11月"
ar[11] = "12月"

return ar[month]
}
function setCal() {

var now = new Date()
var year = now.getYear()
var month = now.getMonth()
var monthName = getMonthName(month)
var date = now.getDate()
now = null

var firstDayInstance = new Date(year, month, 1)
var firstDay = firstDayInstance.getDay()
firstDayInstance = null

var days = getDays(month, year)
// 呼叫函数画日历
drawCal(firstDay + 1, days, date, monthName, year)
}
function drawCal(firstDay, lastDate, date, monthName, year) {
// 以下设定表格的属性,这些参数可以自己改变,只是注意相互匹配。
var headerHeight = 25 // height of the table&#39;s header cell
var border = 1 // 3D height of table&#39;s border
var cellspacing = 1 // width of table&#39;s border
var headerColor = "midnightblue" // color of table&#39;s header
var headerSize = "4" // size of tables header font
var colWidth = 15 // width of columns in table
var dayCellHeight = 12 // 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&#39;s date in the calendar
var timeColor = "black" // color of font representing current time
// create basic table structure
var text = "" // initialize accumulative variable to empty string
text += &#39;<CENTER>&#39;
text += &#39;<TABLE bgcolor=moccasin BORDER=&#39; + border + &#39; CELLSPACING=&#39; + cellspacing + &#39;>&#39; // table settings
text += &#39;<TH COLSPAN=7 HEIGHT=&#39; + headerHeight + &#39;>&#39; // create table header cell
text += &#39;<FONT COLOR="&#39; + headerColor + &#39;" SIZE=&#39; + headerSize + &#39;>&#39; // set font for table header
text += year +&#39;年&#39;+monthName
text += &#39;</FONT>&#39;
text += &#39;<FONT COLOR="&#39; + timeColor + &#39;" >&#39;
text += getTime()

text += &#39;</FONT>&#39; // close table header&#39;s font settings
text += &#39;</TH>&#39; // close header cell
// variables to hold constant settings
var openCol = &#39;<TD WIDTH=&#39; + colWidth + &#39; HEIGHT=&#39; + dayCellHeight + &#39;>&#39;
openCol += &#39;<FONT COLOR="&#39; + dayColor + &#39;">&#39;
var closeCol = &#39;</FONT></TD>&#39;
// 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 += &#39;<TR ALIGN="center" VALIGN="center">&#39;
for (var dayNum = 0; dayNum < 7; ++dayNum) {
text += openCol + weekDay[dayNum] + closeCol
}
text += &#39;</TR>&#39;

var digit = 1
var curCell = 1

for (var row = 1; row <= Math.ceil((lastDate + firstDay - 1) / 7); ++row) {
text += &#39;<TR ALIGN="right" VALIGN="top">&#39;
for (var col = 1; col <= 7; ++col) {
if (digit > lastDate)
break
if (curCell < firstDay) {
text += &#39;<TD></TD>&#39;;
curCell++
} else {
if (digit == date) {
text += &#39;<TD HEIGHT=&#39; + cellHeight + &#39;>&#39;
text += &#39;<FONT COLOR="&#39; + todayColor + &#39;">&#39;
text += digit
text += &#39;</FONT><BR>&#39;

text += &#39;</TD>&#39;
} else
text += &#39;<TD HEIGHT=&#39; + cellHeight + &#39;>&#39; + digit + &#39;</TD>&#39;
digit++
}
}
text += &#39;</TR>&#39;
}
text += &#39;</TABLE>&#39;
text += &#39;</CENTER>&#39;
document.write(text)
}
// -- End Hiding Here -->
</script>  
发表于 2004-2-21 06:33:14 | 显示全部楼层
我去搞搞看~~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|温柔网 ( 浙ICP备13033583号-8 )

GMT+8, 2024-5-3 02:57 , Processed in 0.036502 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表