月历的使用

ASP.NET有个control满好用的,JSP有没有一个类似的class可以用呢?自己写一个当然可以,如果懒得写,这里有个现成的Free的class配合taglib倒也不错用,虽然有些不能尽如人意,但懒得自己重写class的人,倒也可以试用看看!

一、所需档案:
1.http://www.servletsuite.com/servlets/caltag.jar
 下载後放到WEB-INF/lib底下
2.http://www.servletsuite.com/servlets/taglib61.tld
 下载後放到WEB-INF底下

二、原始英文说明文件:
 http://www.servletsuite.com/servlets/caltag.htm

三、用法:
1.最简单的用法:
原始码:

<%@ page contentType="text/html;charset=MS950" %> 
<%@ taglib uri="/WEB-INF/taglib61.tld" prefix="cal" %>
<!--引用这个taglib的tld档-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<title></title>
</head>
<body>
<cal:Calendar>
</cal:Calendar>
<!--只要使用这个taglib就可以产生一个月历->
</body>
</html>





2.显示年月的用法:
原始码:
<%@ page contentType="text/html;charset=MS950" %> 
<%@ taglib uri="/WEB-INF/taglib61.tld" prefix="cal" %>
<!--引用这个taglib的tld档-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<title></title>
</head>
<body>
<cal:Calendar header="true">
</cal:Calendar>
<!--只要使用这个taglib就可以产生一个月历>
<!--设定header="true"便会产生年份月份的抬头>
</body>
</html>





3.设定国别及上下月的作法:
原始码:
<%@ page contentType="text/html;charset=MS950" import="java.util.*,java.text.*"%> 
<%@ taglib uri="/WEB-INF/taglib61.tld" prefix="cal" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
</head>
<body>
<%
String date=request.getParameter("date");
int month=0;
int year=0;
int nmonth=0;
int pmonth=0;
int nyear=0;
int pyear=0;
try
{
month=Integer.parseInt(request.getParameter("month"));
}
catch(Exception em)
{
month=new java.util.Date().getMonth()+1;
}
finally
{
nmonth=month+1;
pmonth=month-1;
try
{
year=Integer.parseInt(request.getParameter("year"));
}
catch(Exception ey)
{
year=new java.util.Date().getYear()+1900;
}
finally
{
nyear=year;
pyear=year;
if (nmonth>12)
{
nmonth=1;
nyear=year+1;
}
if (pmonth<1)
{
pmonth=12;
pyear=year-1;
}
}
}
//以上为按上下月时,须要判定年份的判断
if (date==null)
{
String mask = "00";
DecimalFormat df = new DecimalFormat(mask);
//以上为按下日期时,个位数的月份及日期前头自动补0,先设定遮罩
%>
<cal:Calendar month="<%=month%>" year="<%=year%>" locale="<%=java.util.Locale.TAIWAN%>" header="true">
<!--Calendar可设定要出现的是哪一年哪一月的月历,设定locale後,年月日及星期数会依设定国别变更-->
<cal:setTitleStyle>font-size:9pt; color:#FF0000</cal:setTitleStyle>
<!--设定Title(星期数)字的style-->
<cal:setHeaderStyle>color:#0000FF; text-decoration:none</cal:setHeaderStyle>
<!--设定Header(年份月份)字的style-->
<%
for (int i=1;i<32;i++)
{
%>
<cal:setLink day="<%=i%>"><%=request.getRequestURI()+"?date="+year+df.format(month)+df.format(i)%></cal:setLink>
<!--设定日期的超连结-->
<%
}
%>
<cal:setTarget>_blank</cal:setTarget>
<!--设定日期的超连结按下後要新增视窗或原视窗,原视窗请设定为_self-->
<cal:setNextMonth><%=request.getRequestURI()+"?month="+nmonth+"&year="+nyear%></cal:setNextMonth>
<!--设定按下下一月时,应连结的超连结-->
<cal:setPrevMonth><%=request.getRequestURI()+"?month="+pmonth+"&year="+pyear%></cal:setPrevMonth>
<!--设定按下上一月时,应连结的超连结-->
</cal:Calendar>
<%
}
else
{
out.println("你选到了"+date);
}
%>
</body>
</html>




四、这个还有其他的功用,例如可当日期的挑选工具,详细用法请参照原英文说明文件。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值