日历控件是我们经常使用的,本文把常用的几款日历总结如下。
1.下拉日历梅花雨版第1款
点评:
最经典的几乎完美了

代码:
<%
...
@ Page Language
=
"
C#
"
AutoEventWireup
=
"
true
"
CodeFile
=
"
Default.aspx.cs
"
Inherits
=
"
_Default
"
%>


<
html
>
<
head
runat
="server"
>
<
title
>
日历控件
</
title
>
<
script
type
="text/javascript"
src
="calendar.js"
></
script
>
</
head
>
<
body
>
<
form
id
="form1"
runat
="server"
>
<
div
>
<
input
id
="Text1"
type
="text"
onFocus
=calendar()
/>
</
div
>
</
form
>
</
body
>
</
html
>
14030540975.rar (5.23 KB , 下载:294次)
calendar.js 注意存为带签名的utf-8
梅花雨版第2款
点评:
比上一款大些,色彩淡一点。

<%
...
@ Page Language
=
"
C#
"
AutoEventWireup
=
"
true
"
CodeFile
=
"
Default2.aspx.cs
"
Inherits
=
"
Default2
"
%>
<
html
>
<
head
runat
="server"
>
<
title
>
日历控件
</
title
>
<
script
type
="text/javascript"
src
="calendar.js"
></
script
>

</
head
>
<
body
>
<
form
id
="form1"
runat
="server"
>
<
div
>
<
input
onfocus
="setday(this);"
name
="Calendar1"
type
="text"
id
="Calendar1"
/>
</
div
>
</
form
>
</
body
>
</
html
>
calendar.js
14080517354.rar (5.91 KB , 下载:283次)
2.万年历
点评:可以自定义节日,是很多系统里做装饰的。

wnl.js
14080418581.rar (5.76 KB , 下载:149次)
3.Flash日历
点评:可切换时钟日历2种状态,不过可惜不能选择,只能看而已,似乎作者没有写版权,好想其拉类似的都写个版权。
日历状态:

时间状态:

clock.swf
14083110727.rar (24.15 KB , 下载:116次)
4.仿Windows风格系统时间和日历
点评:没有和textbox结合

仿系统日历和时间钟.htm
日历和时间钟-www_51windows_Net.rar (3.07 KB , 下载:121次)
5.仿Windows风格系统时间和日历
点评:和textbox结合

<
HTML
><
HEAD
><
TITLE
>
http://blog.youkuaiyun.com/21aspnet/
</
TITLE
>
<
META
http-equiv
=Content-Type
content
="text/html; charset=utf-8"
>
<
META
content
="MSHTML 6.00.3790.0"
name
=GENERATOR
>
<
META
content
=C#
name
=CODE_LANGUAGE
>
<
META
content
=JavaScript
name
=vs_defaultClientScript
>
<
META
content
=http://schemas.microsoft.com/intellisense/ie5
name
=vs_targetSchema
>

<
script
lanuage
='javascript'
>
...
function
Calendar(obj)

...
{
var
showx
=
event.screenX
-
event.offsetX
-
4
-

210
;
//
+ deltaX;
var
showy
=
event.screenY
-
event.offsetY
+
18
;

//
+ deltaY;
var
newWINwidth
=
210
+
4
+
18
;
var
retval
=
window.showModalDialog

(
'
cal.htm
'
,obj.value,

'
dialogWidth:206px;dialogHeight:221px;dialogLeft:
'
+
showx
+
'
px;

dialogTop:
'
+
showy
+
'
px;status:0;help:0;scroll:0
'
);
if
( retval
!=
null
)

...
{
obj.value
=
retval;
}
}
</
script
>
</
HEAD
>
<
BODY
bgColor
=white
leftMargin
=0
topMargin
=0
>
<
FORM
id
=Form1
name
=Form1
action
=Search.aspx
method
=post
>
<
input
name
="tbGreateTime"
type
="text"
value
=""
id
="tbGreateTime"

readonly
="true"
onclick
="javascript:Calendar(this);"

style
="width:70px;cursor:hand;"
/>
</
body
>
</
html
>
图片和日历rar
6.当前时间

<!
DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
>
<
html
>
<
head
>
<
meta
http-equiv
="Content-Type"
content
="text/html; charset=gb2312"
>
<
title
>
时钟
</
title
>

<
script
language
="VBScript"
>
...
<
!
--
sub
show_time()
frmclock.txtDate.value
=
date
()
frmclock.txtTime.value
=
time
()
settimeout
"
show_time
"
,
1000
end sub
-->

</
script
>


</
head
>

<
body
onLoad
=show_time()
>
<
form
name
="frmClock"
>
<
font
size
="2"
>
今天是:
<
input
type
="text"
name
="txtDate"
value
=""
>
<
br
>
时间是:
</
font
><
font
size
="2"
>
<
input
type
="text"
name
="txtTime"
value
=""
>
</
font
></
form
>
</
body
>
</
html
>
7.动态版权
做网站很多时候要写版权的时间。

<
SCRIPT
>
document.write(
"
1999-
"
+
(
new
Date()).getYear())
</
SCRIPT
>
8.最常用最短小精悍的日历

<!
DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
>
<
html
>
<
head
>
<
meta
http-equiv
="Content-Type"
content
="text/html; charset=gb2312"
>
<
title
>
每天日历
</
title
>
</
head
>

<
body
>

<
script
language
="JavaScript"
type
="text/JavaScript"
>
...
var
day
=
""
;
var
month
=
""
;
var
ampm
=
""
;
var
ampmhour
=
""
;
var
myweekday
=
""
;
var
year
=
""
;
mydate
=
new
Date();
myweekday
=
mydate.getDay();
mymonth
=
mydate.getMonth()
+
1
;
myday
=
mydate.getDate();
myyear
=
mydate.getYear();
year
=
(myyear
>
200
)
?
myyear :
1900
+
myyear;
if
(myweekday
==
0
)
weekday
=
"
星期日
"
;
else
if
(myweekday
==
1
)
weekday
=
"
星期一
"
;
else
if
(myweekday
==
2
)
weekday
=
"
星期二
"
;
else
if
(myweekday
==
3
)
weekday
=
"
星期三
"
;
else
if
(myweekday
==
4
)
weekday
=
"
星期四
"
;
else
if
(myweekday
==
5
)
weekday
=
"
星期五
"
;
else
if
(myweekday
==
6
)
weekday
=
"
星期六
"
;
document.write(year
+
"
年
"
+
mymonth
+
"
月
"
+
myday
+
"
日
"
+
weekday);
</
script
>
</
body
>
</
html
>
9.下拉日历

10.农历

<
script
language
="JavaScript"
>
...
<!--
function
CalConv()

...
{
FIRSTYEAR
=
1998
;
LASTYEAR
=
2031
;
today
=
new
Date();
SolarYear
=
today.getFullYear();
SolarMonth
=
today.getMonth()
+
1
;
SolarDate
=
today.getDate();
Weekday
=
today.getDay();
LunarCal
=
[
new
tagLunarCal(
27
,
5
,
3
,
43
,
1
,
0
,
0
,
1
,
0
,
0
,
1
,
1
,
0
,
1
,
1
,
0
,
1
),

new
tagLunarCal(
46
,
0
,
4
,
48
,
1
,
0
,
0
,
1
,
0
,
0
,
1
,
0
,
1
,
1
,
1
,
0
,
1
),
/**/
/*
88
*/
new
tagLunarCal(
35
,
0
,
5
,
53
,
1
,
1
,
0
,
0
,
1
,
0
,
0
,
1
,
0
,
1
,
1
,
0
,
1
),
/**/
/*
89
*/
new
tagLunarCal(
23
,
4
,
0
,
59
,
1
,
1
,
0
,
1
,
0
,
1
,
0
,
0
,
1
,
0
,
1
,
0
,
1
),
new
tagLunarCal(
42
,
0
,
1
,
4
,
1
,
1
,
0
,
1
,
0
,
1
,
0
,
0
,
1
,
0
,
1
,
0
,
1
),
new
tagLunarCal(
31
,
0
,
2
,
9
,
1
,
1
,
0
,
1
,
1
,
0
,
1
,
0
,
0
,
1
,
0
,
1
,
0
),

new
tagLunarCal(
21
,
2
,
3
,
14
,
0
,
1
,
0
,
1
,
1
,
0
,
1
,
0
,
1
,
0
,
1
,
0
,
1
),
/**/
/*
93
*/
new
tagLunarCal(
39
,
0
,
5
,
20
,
0
,
1
,
0
,
1
,
0
,
1
,
1
,
0
,
1
,
0
,
1
,
0
,
1
),
new
tagLunarCal(
28
,
7
,
6
,
25
,
1
,
0
,
1
,
0
,
1
,
0
,
1
,
0
,
1
,
1
,
0
,
1
,
1
),
new
tagLunarCal(
48
,
0
,
0
,
30
,
0
,
0
,
1
,
0
,
0
,
1
,
0
,
1
,
1
,
1
,
0
,
1
,
1
),

new
tagLunarCal(
37
,
0
,
1
,
35
,
1
,
0
,
0
,
1
,
0
,
0
,
1
,
0
,
1
,
1
,
0
,
1
,
1
),
/**/
/*
97
*/
new
tagLunarCal(
25
,
5
,
3
,
41
,
1
,
1
,
0
,
0
,
1
,
0
,
0
,
1
,
0
,
1
,
0
,
1
,
1
),
new
tagLunarCal(
44
,
0
,
4
,
46
,
1
,
0
,
1
,
0
,
1
,
0
,
0
,
1
,
0
,
1
,
0
,
1
,
1
),
new
tagLunarCal(
33
,
0
,
5
,
51
,
1
,
0
,
1
,
1
,
0
,
1
,
0
,
0
,
1
,
0
,
1
,
0
,
1
),

new
tagLunarCal(
22
,
4
,
6
,
56
,
1
,
0
,
1
,
1
,
0
,
1
,
0
,
1
,
0
,
1
,
0
,
1
,
0
),
/**/
/*
101
*/
new
tagLunarCal(
40
,
0
,
1
,
2
,
1
,
0
,
1
,
1
,
0
,
1
,
0
,
1
,
0
,
1
,
0
,
1
,
0
),
new
tagLunarCal(
30
,
9
,
2
,
7
,
0
,
1
,
0
,
1
,
0
,
1
,
0
,
1
,
1
,
0
,
1
,
0
,
1
),
new
tagLunarCal(
49
,
0
,
3
,
12
,
0
,
1
,
0
,
0
,
1
,
0
,
1
,
1
,
1
,
0
,
1
,
0
,
1
),

new
tagLunarCal(
38
,
0
,
4
,
17
,
1
,
0
,
1
,
0
,
0
,
1
,
0
,
1
,
1
,
0
,
1
,
1
,
0
),
/**/
/*
105
*/
new
tagLunarCal(
27
,
6
,
6
,
23
,
0
,
1
,
0
,
1
,
0
,
0
,
1
,
0
,
1
,
0
,
1
,
1
,
1
),
new
tagLunarCal(
46
,
0
,
0
,
28
,
0
,
1
,
0
,
1
,
0
,
0
,
1
,
0
,
1
,
0
,
1
,
1
,
0
),
new
tagLunarCal(
35
,
0
,
1
,
33
,
0
,
1
,
1
,
0
,
1
,
0
,
0
,
1
,
0
,
0
,
1
,
1
,
0
),

new
tagLunarCal(
24
,
4
,
2
,
38
,
0
,
1
,
1
,
1
,
0
,
1
,
0
,
0
,
1
,
0
,
1
,
0
,
1
),
/**/
/*
109
*/
new
tagLunarCal(
42
,
0
,
4
,
44
,
0
,
1
,
1
,
0
,
1
,
0
,
1
,
0
,
1
,
0
,
1
,
0
,
1
),
new
tagLunarCal(
31
,
0
,
5
,
49
,
1
,
0
,
1
,
0
,
1
,
1
,
0
,
1
,
0
,
1
,
0
,
1
,
0
),
new
tagLunarCal(
21
,
2
,
6
,
54
,
0
,
1
,
0
,
1
,
0
,
1
,
0
,
1
,
1
,
0
,
1
,
0
,
1
),

new
tagLunarCal(
40
,
0
,
0
,
59
,
0
,
1
,
0
,
0
,
1
,
0
,
1
,
1
,
0
,
1
,
1
,
0
,
1
),
/**/
/*
113
*/
new
tagLunarCal(
28
,
6
,
2
,
5
,
1
,
0
,
1
,
0
,
0
,
1
,
0
,
1
,
0
,
1
,
1
,
1
,
0
),
new
tagLunarCal(
47
,
0
,
3
,
10
,
1
,
0
,
1
,
0
,
0
,
1
,
0
,
0
,
1
,
1
,
1
,
0
,
1
),
new
tagLunarCal(
36
,
0
,
4
,
15
,
1
,
1
,
0
,
1
,
0
,
0
,
1
,
0
,
0
,
1
,
1
,
0
,
1
),

new
tagLunarCal(
25
,
5
,
5
,
20
,
1
,
1
,
1
,
0
,
1
,
0
,
0
,
1
,
0
,
0
,
1
,
1
,
0
),
/**/
/*
117
*/
new
tagLunarCal(
43
,
0
,
0
,
26
,
1
,
1
,
0
,
1
,
0
,
1
,
0
,
1
,
0
,
0
,
1
,
0
,
1
),
new
tagLunarCal(
32
,
0
,
1
,
31
,
1
,
1
,
0
,
1
,
1
,
0
,
1
,
0
,
1
,
0
,
1
,
0
,
0
),
new
tagLunarCal(
22
,
3
,
2
,
36
,
0
,
1
,
1
,
0
,
1
,
0
,
1
,
1
,
0
,
1
,
0
,
1
,
0
) ];

/**/
/*
民国年每月之日数
*/
SolarCal
=
[
31
,
28
,
31
,
30
,
31
,
30
,
31
,
31
,
30
,
31
,
30
,
31
];

/**/
/*
民国年每月之累积日数, 平年与闰年
*/
SolarDays
=
[
0
,
31
,
59
,
90
,
120
,
151
,
181
,
212
,
243
,
273
,
304
,
334
,
365
,
396
,
0
,
31
,
60
,
91
,
121
,
152
,
182
,
213
,
244
,
274
,
305
,
335
,
366
,
397
];
AnimalIdx
=
[
"
马
"
,
"
羊
"
,
"
猴
"
,
"
鸡
"
,
"
狗
"
,
"
猪
"
,
"
鼠
"
,
"
牛
"
,
"
虎
"
,
"
兔
"
,
"
龙
"
,
"
蛇
"
];
LocationIdx
=
[
"
南
"
,
"
东
"
,
"
北
"
,
"
西
"
];
if
( SolarYear
<=
FIRSTYEAR
||
SolarYear
>
LASTYEAR )
return
1
;
sm
=
SolarMonth
-
1
;
if
( sm
<
0
||
sm
>
11
)
return
2
;
leap
=
GetLeap( SolarYear );
if
( sm
==
1
)
d
=
leap
+
28
;
else
d
=
SolarCal[sm];
if
( SolarDate
<
1
||
SolarDate
>
d )
return
3
;
y
=
SolarYear
-
FIRSTYEAR;
acc
=
SolarDays[ leap
*
14
+
sm ]
+
SolarDate;
kc
=
acc
+
LunarCal[y].BaseKanChih;
Kan
=
kc
%
10
;
Chih
=
kc
%
12
;
Location
=
LocationIdx[kc
%
4
];
Age
=
kc
%
60
;
if
( Age
<
22
)
Age
=
22
-
Age;
else
Age
=
82
-
Age;
Animal
=
AnimalIdx[ Chih ];

if
( acc
<=
LunarCal[y].BaseDays )
...
{
y
--
;
LunarYear
=
SolarYear
-
1
;
leap
=
GetLeap( LunarYear );
sm
+=
12
;
acc
=
SolarDays[leap
*
14
+
sm]
+
SolarDate;
}
else
LunarYear
=
SolarYear;
l1
=
LunarCal[y].BaseDays;

for
( i
=
0
; i
<
13
; i
++
)
...
{
l2
=
l1
+
LunarCal[y].MonthDays[i]
+
29
;
if
( acc
<=
l2 )
break
;
l1
=
l2;
}
LunarMonth
=
i
+
1
;
LunarDate
=
acc
-
l1;
im
=
LunarCal[y].Intercalation;

if
( im
!=
0
&&
LunarMonth
>
im )
...
{
LunarMonth
--
;
if
( LunarMonth
==
im ) LunarMonth
=
-
im;
}
if
( LunarMonth
>
12
) LunarMonth
-=
12
;
today
=
new
Date();

function
initArray()
...
{
this
.length
=
initArray.arguments.length
for
(
var
i
=
0
;i
<
this
.length;i
++
)
this
[i
+
1
]
=
initArray.arguments[i] }
var
d
=
new
initArray(
"
星期日
"
,
"
星期一
"
,
"
星期二
"
,
"
星期三
"
,
"
星期四
"
,
"
星期五
"
,
"
星期六
"
);
document.write(
"
<span class="jsdhtml">
"
, today.getYear(),
"
年
"
,today.getMonth()
+
1
,
"
月
"
,today.getDate(),
"
日
"
,d[today.getDay()
+
1
],
""
);
document.write(
"
<span class="jsdhtml">【<u> 农历
"
+
LunarMonth
+
"
月
"
+
LunarDate
+
"
日</u>】
"
);
return
0
;
}

/**/
/*
求此民国年是否为闰年, 返回 0 为平年, 1 为闰年
*/
function
GetLeap( year )

...
{
if
( year
%
400
==
0
)
return
1
;
else
if
( year
%
100
==
0
)
return
0
;
else
if
( year
%
4
==
0
)
return
1
;
else
return
0
;
}

function
tagLunarCal( d, i, w, k, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13)
...
{

this
.BaseDays
=
d;
/**/
/*
到民国 1 月 1 日到农历正月初一的累积日数
*/

this
.Intercalation
=
i;
/**/
/*
闰月月份. 0==此年没有闰月
*/

this
.BaseWeekday
=
w;
/**/
/*
此年民国 1 月 1 日为星期几再减 1
*/

this
.BaseKanChih
=
k;
/**/
/*
此年民国 1 月 1 日之干支序号减 1
*/

this
.MonthDays
=
[ m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13 ];
/**/
/*
此农历年每月之大小, 0==小月(29日), 1==大月(30日)
*/
}
//
-->
CalConv();
</
script
>

11.年历

<
html
>
<
head
>
<
meta
http-equiv
="Content-Type"
content
="text/html; charset=gb2312"
>
<
title
>
万年历
</
title
>

<
style
>
...

th
{...}
{
color
:
#FFF
;
background-color
:
#F89807
}

td
{...}
{
color
:
#000
;
background-color
:
#FDEDCC
}

input,textarea,th,td
{...}
{
font-size
:
9pt
}
</
style
>
</
head
>
<
body
>
<
div
id
="hyout"
></
div
>

<
script
>
...

var
hy
=
new
Date()
var
hyd
=
new
Date()
var
cnt
=
new
Array(
"
日
"
,
"
一
"
,
"
二
"
,
"
三
"
,
"
四
"
,
"
五
"
,
"
六
"
)

function
hyout(hyy,hym)
...
{
var
outxt
=
""
outxt
+=
"
<table border=0 width=100% cellspacing=0><tr><th><font color=#FFFFFF>
"
outxt
+=
hym
+
"
月</font>
"
outxt
+=
"
<table border=0 width=100% cellspacing=1 cellpadding=0><tr align=center>
"

for
(i
=
0
;i
<
cnt.length;i
++
)
...
{
outxt
+=
"
<td>
"
+
cnt[i]
+
"
</td>
"
}
outxt
+=
"
</tr><tr align=center>
"
var
j
=
0
hyd.setYear(hyy)
hyd.setMonth(
--
hym)
hyd.setDate(
1
)

for
(
var
i
=
1
;i
<=
42
;i
++
)
...
{
if
((i
%
7
)
==
1
&&
i
>
1
)outxt
+=
"
</tr><tr align=center>
"

if
((i
<=
hyd.getDay())
||
(hyd.getMonth()
!=
hym))
...
{
outxt
+=
"
<td> </td>
"

}
else
...
{
hyd.setDate(
++
j)

if
(hyd.getMonth()
==
hym)
...
{

if
(hyd.getDate()
==
hy.getDate()
&&
hyd.getMonth()
==
hy.getMonth()
&&
hyd.getYear()
==
hy.getYear())
...
{
outxt
+=
"
<th>
"
+
j
+
"
</th>
"

}
else
...
{
outxt
+=
"
<td>
"
+
j
+
"
</td>
"
}

}
else
...
{
outxt
+=
"
<td> </td>
"
}
}
}
outxt
+=
"
</tr></table></th></tr><tr><th></th></tr></table>
"
return
outxt
}

function
hyouty(hyy)
...
{
hyy
=
parseFloat(
0
+
hyy)
if
(hyy
==
0
) hyy
=
hy.getYear()
outxt
=
"
<table width=100% border=1 bordercolor=#000000><form><tr><td colspan=4 align=right>公元:<input type=text name=hyyear size=4 maxlength=4 value=
"
+
hyy
+
"
> 年 <input type=button value=查看 onclick=hyouty(this.form.hyyear.value)></td></form></tr><tr>
"

for
(
var
i
=
1
;i
<=
12
;i
++
)
...
{
if
(i
%
4
==
1
&&
i
>
1
)outxt
+=
"
</tr><tr>
"
outxt
+=
"
<td>
"
+
hyout(hyy,i)
+
"
</td>
"
}
outxt
+=
"
</tr></table>
"
document.all[
"
hyout
"
].innerHTML
=
outxt
}
hyouty(hy.getYear())
</
script
>
</
body
>
</
html
>





12.广泛应用的一个日历控件
点评:本控件界面美观,本人在多个企业的系统看到该控件,所以分享给大家。
图片和js代码
<%...@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<html>
<head runat="server">
<title>日历控件</title>
<script type="text/javascript" src="popcalendar.js"></script>

</head>
<body>
<form id="form1" runat="server">
<div>
<asp:textbox id="txt_StartCPXG_DATE" runat="server" Width="100px" ReadOnly="True" CssClass="edLine"></asp:textbox>

<img id="Image_blqx1" style="CURSOR: hand" onclick="popUpCalendar(this,document.forms[0].txt_StartCPXG_DATE,'yyyy-mm-dd')"
src="images/calendar.gif" /></div>
</form>
</body>
</html>

14145100709.rar (18.38 KB , 下载:243次)