`
happmaoo
  • 浏览: 4351350 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

天涯社区用到的日历函数

阅读更多

代码如下:

[Ctrl+A 全选 提示:你可先修改部分代码,再点运行代码]

其中用到一个Date.js文件代码如下:

1<!--Hide
2isIE=(document.all?true:false);
3
4functiongetIEPosX(elt){returngetIEPos(elt,"Left");}
5functiongetIEPosY(elt){returngetIEPos(elt,"Top");}
6functiongetIEPos(elt,which){
7iPos=0
8while(elt!=null){
9iPos+=elt["offset"+which]
10elt=elt.offsetParent
11}
12returniPos
13}
14
15functiongetXBrowserRef(eltname){
16return(isIE?document.all[eltname].style:document.layers[eltname]);
17}
18
19functionhideElement(eltname){getXBrowserRef(eltname).visibility='hidden';}
20
21//按不同的浏览器进行处理元件的位置
22functionmoveBy(elt,deltaX,deltaY){
23if(isIE){
24elt.left=elt.pixelLeft+deltaX;
25elt.top=elt.pixelTop+deltaY;
26}else{
27elt.left+=deltaX;
28elt.top+=deltaY;
29}
30}
31
32functiontoggleVisible(eltname){
33elt=getXBrowserRef(eltname);
34if(elt.visibility=='visible'||elt.visibility=='show'){
35elt.visibility='hidden';
36}else{
37fixPosition(eltname);
38elt.visibility='visible';
39}
40}
41
42functionsetPosition(elt,positionername,isPlacedUnder){
43positioner=null;
44if(isIE){
45positioner=document.all[positionername];
46elt.left=getIEPosX(positioner);
47elt.top=getIEPosY(positioner);
48}else{
49positioner=document.images[positionername];
50elt.left=positioner.x;
51elt.top=positioner.y;
52}
53if(isPlacedUnder){moveBy(elt,0,positioner.height);}
54}
55
56
57
58//——————————————————————————————————————
59
60//判断浏览器
61isIE=(document.all?true:false);
62
63//初始月份及各月份天数数组
64varmonths=newArray("一月","二月","三月","四月","五月","六月","七月",
65"八月","九月","十月","十一月","十二月");
66vardaysInMonth=newArray(31,28,31,30,31,30,31,31,
6730,31,30,31);
68vardisplayMonth=newDate().getMonth();
69vardisplayYear=newDate().getFullYear();
70vardisplayDay=0;
71
72vardisplayDivName;
73vardisplayElement;
74
75functiongetDays(month,year){
76//测试选择的年份是否是润年?
77if(1==month)
78return((0==year%4)&&(0!=(year%100)))||
79(0==year%400)?29:28;
80else
81returndaysInMonth[month];
82}
83
84functiongetToday(){
85//得到今天的日期
86this.now=newDate();
87this.year=this.now.getFullYear();
88this.month=this.now.getMonth();
89this.day=this.now.getDate();
90}
91
92//并显示今天这个月份的日历
93today=newgetToday();
94
95functionnewCalendar(eltName,attachedElement){
96if(attachedElement){
97if(displayDivName&&displayDivName!=eltName)hideElement(displayDivName);
98displayElement=attachedElement;
99}
100displayDivName=eltName;
101
102today=newgetToday();
103varparseYear=parseInt(displayYear+'');
104varnewCal=newDate(parseYear,displayMonth,1);
105varday=-1;
106varstartDayOfWeek=newCal.getDay();
107if((today.year==newCal.getFullYear())&&
108(today.month==newCal.getMonth()))
109{
110day=today.day;
111}
112varintDaysInMonth=
113getDays(newCal.getMonth(),newCal.getFullYear());
114vardaysGrid=makeDaysGrid(startDayOfWeek,day,intDaysInMonth,newCal,eltName)
115if(isIE){
116varelt=document.all[eltName];
117elt.innerHTML=daysGrid;
118}else{
119varelt=document.layers[eltName].document;
120elt.open();
121elt.write(daysGrid);
122elt.close();
123}
124}
125
126functionincMonth(delta,eltName){
127displayMonth+=delta;
128if(displayMonth>=12){
129displayMonth=0;
130incYear(1,eltName);
131}elseif(displayMonth<=-1){
132displayMonth=11;
133incYear(-1,eltName);
134}else{
135newCalendar(eltName);
136}
137}
138
139functionincYear(delta,eltName){
140displayYear=parseInt(displayYear+'')+delta;
141newCalendar(eltName);
142}
143
144functionmakeDaysGrid(startDay,day,intDaysInMonth,newCal,eltName){
145vardaysGrid;
146varmonth=newCal.getMonth();
147varyear=newCal.getFullYear();
148varisThisYear=(year==newDate().getFullYear());
149varisThisMonth=(day>-1)
150daysGrid='<tableborder=1cellspacing=0cellpadding=0><tr><td><tableborder=0cellspacing=0cellpadding=2bgcolor=#ffffff><tr><tdcolspan=7bgcolor=#ffffffnowrap>';
151daysGrid+='<atitle="关闭日历"href="javascript:hideElement(\''+eltName+'\')"><Bstyle="color:black;background-color:blue"><fontcolor=white></font></B></a>';
152daysGrid+='&nbsp;&nbsp;';
153daysGrid+='<ahref="javascript:incMonth(-1,\''+eltName+'\')"></a>';
154
155daysGrid+='<b>';
156if(isThisMonth){daysGrid+='<fontcolor=red>'+months[month]+'</font>';}
157else{daysGrid+=months[month];}
158daysGrid+='</b>';
159
160daysGrid+='<ahref="javascript:incMonth(1,\''+eltName+'\')"></a>';
161if(month<10){daysGrid+='&nbsp;&nbsp;&nbsp;&nbsp;';}
162daysGrid+='&nbsp;&nbsp;';
163daysGrid+='<ahref="javascript:incYear(-1,\''+eltName+'\')"></a>';
164
165daysGrid+='<b>';
166if(isThisYear){daysGrid+='<fontcolor=red>'+year+'</font>';}
167else{daysGrid+=''+year;}
168daysGrid+='</b>';
169
170daysGrid+='<ahref="javascript:incYear(1,\''+eltName+'\')"></a></td></tr>';
171daysGrid+='<tr><tdbgcolor=graycolspan=7></td></tr>';
172daysGrid+='<tr><tdalign=right><fontcolor=red></font></td><tdalign=right></td><tdalign=right></td><tdalign=right></td><tdalign=right></td><tdalign=right></td><tdalign=right><fontcolor=red></font></td></tr>';
173daysGrid+='<tr><tdbgcolorcolor: #0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics