//页面上的日期是用js写的一个日历
var weekend = [0,6];
var weekendColor = "#e0e0e0";
var fontface = "宋体";
var fontsize = 2;
var gNow = new Date();
var ggWinCal;
isNav = (navigator.appName.indexOf("Netscape") != -1) ? true :
false;
isIE = (navigator.appName.indexOf("Microsoft") != -1) ? true :
false;
Calendar.Months = ["一月", "二月", "三月", "四月", "五月",
"六月",
"七月", "八月", "九月", "十月", "十一月", "十二月"];
// 不是润年
Calendar.DOMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30,
31];
// 闰年
Calendar.lDOMonth = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30,
31];
function Calendar(p_item, p_WinCal, p_month, p_year, p_format)
{
if ((p_month == null) && (p_year ==
null)) return;
if (p_WinCal == null)
this.gWinCal = ggWinCal;
else
this.gWinCal = p_WinCal;
if (p_month == null) {
this.gMonthName = null;
this.gMonth = null;
this.gYearly = true;
} else {
this.gMonthName =
Calendar.get_month(p_month);
this.gMonth = new
Number(p_month);
this.gYearly = false;
}
this.gYear = p_year;
this.gFormat = p_format;
this.gBGColor = "white";
this.gFGColor = "black";
this.gTextColor = "black";
this.gHeaderColor = "black";
this.gReturnItem = p_item;
}
Calendar.get_month = Calendar_get_month;
Calendar.get_daysofmonth = Calendar_get_daysofmonth;
Calendar.calc_month_year = Calendar_calc_month_year;
Calendar.print = Calendar_print;
function Calendar_get_month(monthNo) {
return Calendar.Months[monthNo];
}
function Calendar_get_daysofmonth(monthNo, p_year) {
/*
Check for leap year ..
1.Years evenly divisible by four are normally
leap years, except for...
2.Years also evenly divisible by 100 are not leap
years, except for...
3.Years also evenly divisible by 400 are leap
years.
*/
if ((p_year % 4) == 0) {
if ((p_year % 100) == 0
&& (p_year % 400) != 0)
return
Calendar.DOMonth[monthNo];
return
Calendar.lDOMonth[monthNo];
} else
return
Calendar.DOMonth[monthNo];
}
function Calendar_calc_month_year(p_Month, p_Year, incr)
{
/*
Will return an 1-D array with 1st element being
the calculated month
and second being the calculated year
after applying the month increment/decrement as
specified by 'incr' parameter.
'incr' will normally have 1/-1 to navigate thru
the months.
*/
var ret_arr = new Array();
if (incr == -1) {
// B A C K W A R D
if (p_Month == 0) {
ret_arr[0] =
11;
ret_arr[1] =
parseInt(p_Year) - 1;
}
else {
ret_arr[0] =
parseInt(p_Month) - 1;
ret_arr[1] =
parseInt(p_Year);
}
} else if (incr == 1) {
// F O R W A R D
if (p_Month == 11) {
ret_arr[0] =
0;
ret_arr[1] =
parseInt(p_Year) + 1;
}
else {
ret_arr[0] =
parseInt(p_Month) + 1;
ret_arr[1] =
parseInt(p_Year);
}
}
return ret_arr;
}
function Calendar_print() {
ggWinCal.print();
}
function Calendar_calc_month_year(p_Month, p_Year, incr)
{
/*
Will return an 1-D array with 1st element being
the calculated month
and second being the calculated year
after applying the month increment/decrement as
specified by 'incr' parameter.
'incr' will normally have 1/-1 to navigate thru
the months.
*/
var ret_arr = new Array();
if (incr == -1) {
// B A C K W A R D
if (p_Month == 0) {
ret_arr[0] =
11;
ret_arr[1] =
parseInt(p_Year) - 1;
}
else {
ret_arr[0] =
parseInt(p_Month) - 1;
ret_arr[1] =
parseInt(p_Year);
}
} else if (incr == 1) {
// F O R W A R D
if (p_Month == 11) {
ret_arr[0] =
0;
ret_arr[1] =
parseInt(p_Year) + 1;
}
else {
ret_arr[0] =
parseInt(p_Month) + 1;
ret_arr[1] =
parseInt(p_Year);
}
}
return ret_arr;
}
// This is for compatibility with Navigator 3, we have to
create and discard one object before the prototype object
exists.
new Calendar();
Calendar.prototype.getMonthlyCalendarCode = function() {
var vCode = "";
var vHeader_Code = "";
var vData_Code = "";
// Begin Table Drawing code here..
vCode = vCode + "
BGCOLOR=\"" + this.gBGColor + "\">";
vHeader_Code = this.cal_header();
vData_Code = this.cal_data();
vCode = vCode + vHeader_Code + vData_Code;
vCode = vCode + "
";return vCode;
}
Calendar.prototype.show = function() {
var vCode = "";
this.gWinCal.document.open();
// Setup the page...
this.wwrite("");
this.wwrite("
日历");this.wwrite("");
this.wwrite("
"link=\"" + this.gLinkColor +
"\" " +
"vlink=\"" + this.gLinkColor +
"\" " +
"alink=\"" + this.gLinkColor +
"\" " +
"text=\"" + this.gTextColor +
"\">");
this.wwriteA("
SIZE=2>");
this.wwriteA(this.gMonthName + " " +
this.gYear);
this.wwriteA("
");
// Show navigation buttons
var prevMMYYYY =
Calendar.calc_month_year(this.gMonth, this.gYear, -1);
var prevMM = prevMMYYYY[0];
var prevYYYY = prevMMYYYY[1];
var nextMMYYYY =
Calendar.calc_month_year(this.gMonth, this.gYear, 1);
var nextMM = nextMMYYYY[0];
var nextYYYY = nextMMYYYY[1];
this.wwrite("
CELLSPACING=0 CELLPADDING=0 BGCOLOR='#FFCC99'>
ALIGN=center>");
"javascript:window.opener.Build("
"'" + this.gReturnItem + "', '"
+ this.gMonth + "', '" + (parseInt(this.gYear)-1) + "', '" +
ALIGN=center>");
"javascript:window.opener.Build("
"'" + this.gReturnItem + "', '"
+ prevMM + "', '" + prevYYYY + "', '" + this.gFormat + "'" +
ALIGN=center>");
"javascript:window.opener.Build("
"'" + this.gReturnItem + "', '"
+ nextMM + "', '" + nextYYYY + "', '" + this.gFormat + "'" +
ALIGN=center>");
"javascript:window.opener.Build("
"'" + this.gReturnItem + "', '"
+ this.gMonth + "', '" + (parseInt(this.gYear)+1) + "', '" +
");
// Get the complete calendar code for the
month..
vCode = this.getMonthlyCalendarCode();
this.wwrite(vCode);
this.wwrite("");
this.gWinCal.document.close();
}
Calendar.prototype.showY = function() {
var vCode = "";
var i;
var vr, vc, vx,
vy; // Row, Column, X-coord,
Y-coord
var vxf =
285; //
X-Factor
var vyf =
200; //
Y-Factor
var vxm =
10; //
X-margin
var
vym; //
Y-margin
if (isIE) vym = 75;
else if (isNav) vym = 25;
this.gWinCal.document.open();
this.wwrite("");
this.wwrite("
Calendar");this.wwrite("
for (i=0; i
vc = i % 3;
if (i>=0 && i
2) vr = 0;
if (i>=3 && i
5) vr = 1;
if (i>=6 && i
8) vr = 2;
if (i>=9 && i
11) vr = 3;
vx = parseInt(vxf * vc) +
vxm;
vy = parseInt(vyf * vr) +
vym;
this.wwrite(".lclass" + i
+ " {position:absolute;top:" + vy + ";left:" + vx + ";}");
}
this.wwrite("-->\n");
this.wwrite("");
this.wwrite("
"link=\"" + this.gLinkColor +
"\" " +
"vlink=\"" + this.gLinkColor +
"\" " +
"alink=\"" + this.gLinkColor +
"\" " +
"text=\"" + this.gTextColor +
"\">");
this.wwrite("
SIZE=2>");
this.wwrite("Year : " + this.gYear);
this.wwrite("
");
// Show navigation buttons
var prevYYYY = parseInt(this.gYear) - 1;
var nextYYYY = parseInt(this.gYear) + 1;
this.wwrite("
CELLSPACING=0 CELLPADDING=0 BGCOLOR='#e0e0e0'>
ALIGN=center>");
"javascript:window.opener.Build("
null, '" + prevYYYY + "', '" + this.gFormat + "'" +
ALIGN=center>");
this.wwrite("[
HREF=\"javascript:window.print();\">Print
]ALIGN=center>");
"javascript:window.opener.Build("
null, '" + nextYYYY + "', '" + this.gFormat + "'" +
");
// Get the complete calendar code for each
month..
var j;
for (i=11; i>=0; i--) {
if (isIE)
this.wwrite("
ID=\"layer" + i + "\" CLASS=\"lclass" + i + "\">");
else if (isNav)
this.wwrite("
ID=\"layer" + i + "\" CLASS=\"lclass" + i + "\">");
this.gMonth = i;
this.gMonthName =
Calendar.get_month(this.gMonth);
vCode =
this.getMonthlyCalendarCode();
this.wwrite(this.gMonthName +
"/" + this.gYear + "
");
this.wwrite(vCode);
if (isIE)
this.wwrite("
else if (isNav)
this.wwrite("");
}
this.wwrite("
");
this.gWinCal.document.close();
}
Calendar.prototype.wwrite = function(wtext) {
this.gWinCal.document.writeln(wtext);
}
Calendar.prototype.wwriteA = function(wtext) {
this.gWinCal.document.write(wtext);
}
//由于字数限制,后面内容在下篇文章中
本文介绍了一个使用JavaScript实现的日历插件,该插件能够显示指定月份的日历,并具备前后翻页的功能。通过简单的参数配置,可以轻松地在网页上嵌入一个美观实用的日历组件。
390

被折叠的 条评论
为什么被折叠?



