文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程JSP动态网页:在JSP应用程序中日期的用法
精品推荐
特别推荐
·什么是 JSP 技术?
·JSP简介
·JSP数据库操作例程
·新手入门:学习JSP的经典的入门学习资料
·由浅入深学习动态网页制作PHP的编程与应用
·输入汉字自动转为拼音(jsp实现方式)
·经验分享 JSP程序员完全蜕变手册
·JSP实战:JBuilder2005中创建数据库表
·新手入门:JSP基本语法与简单表单处理
·使用技巧:在JSP页面中的应用JavaBean
·实例:JSP中把动态页面转换为静态页面
·使JSP/Servlet应用程序优化的八种方法
·提升JSP页面响应速度的七大秘籍绝招
·jsp中文问题解决方案(完整版)
·jsp的八个隐含对象
·用jsp实现SQLServe数据库的备份和恢复
·深入浅析JSP安全编程实例
·jsp防盗链
·js技巧收集(200多个)
·JSP应用语法详解大全 (3)
热点TOP10
·JSP简介
·目前最好的JSP分页技术(考虑到数据库移植,并修正过效率)
·在jsp中用bean和servlet联合实现用户注册、登录
·js技巧收集(200多个)
·用JSP+JavaScript打造二级级联下拉菜单
·关于JSP Commons FileUpload 组件上传文件的一些总结
·水晶报表的jsp实现
·目前最好的JSP分页技术
·不用迭代算法而快速实现的jsp树结构
·用JSP从数据库中读取图片并显示在网页上
·新手入门:学习JSP的经典的入门学习资料
·jsp-servlet技术:一篇写的详细的session的好文章
·在一个jsp页面实现二级下拉框联动
·JSP上传图片并生成缩略图
·输入汉字自动转为拼音(jsp实现方式)
·树形目录的递归实现数据库+jsp+javabean
·JSP连接SQL Server 2000系统配置
·jspSmartUpload上传下载全攻略
·jsp在线考试系统-jsp文件
·什么是 JSP 技术?

动态网页:在JSP应用程序中日期的用法

日期:2007年7月8日 作者: 查看:[大字体 中字体 小字体]


在开发有关日历的应用程序时,不规则的每月日期数、每周天数和周末的计算一直是个很费脑筋的问题。结果,日期和时间的编程经常令程序员新手畏缩不前。本文将演示在JSP应用程序中日期的用法,为读者完成某些常见任务提供方便的参考。

示例应用程序的目的是:

通过HTML表单把日期参数提交某个JSP页来处理。 接收日期参数并创建Calendar对象。 采用Calendar对象找出提交的日期是一周的第几天以及选中月份里有多少工作日。 用用户易于阅读的显示格式对日期格式化。

环境

示例程序代码在Java Web服务器上接受测试,该服务器配置了JDK 1.31。示例写得很标准,在Tomcat或者其他JSP Web服务器(JDK 1.2或者以后版本)上运行的效果几乎完全一样。

通过表单把日期传递给JSP页

Date(日期)参数是用户从3栏下拉列表中选出来的。用户提交表单之后,这些参数即被传送给处理页面。

在进行日历编程时不要忘了导入java.util.Calendar:

<%@ page import="java.util.Calendar" %>

处理页面的第1个任务是接收以下日期参数值:Date、Month和Year。

int curDate = 1;
if(request.getParameter("curDate") != null)
{
curDate = Integer.parseInt(request.getParameter("curDate"));
}

注意页面参数被转换为int类型,马上我们就知道为什么要这么做了。

Calendar对象

我们的目标是创建和设置一个Calendar对象,用它进行日期计算。为此,我们首先需要实例化一个Calendar对象。

Calendar cal  = Calendar.getInstance();

Calendar.getInstance()返回一个代表当前日期和时间的Calendar对象。

cal.clear();
cal.set(curYear, curMonth , curDate);

clear()方法清空Calendar,这样我们才可能给该对象分配我们自己的日期值并为将来的计算做好准备。注意这些参数的顺序:首先是年,最后是日期。

从Calendar获取信息

以下是一组Calendar字段:

日期
DATE, DAY_OF_MONTH, DAY_OF_WEEK, DAY_OF_YEAR

时间
HOUR_OF_DAY, MINUTE, MILLISECOND, SECOND


WEEK_OF_MONTH, WEEK_OF_YEAR


YEAR

以上这些字段都可以通过Calendar的get()方法进行访问,结果返回一个整数。以下代码示例显示了以上过程。

一周内的日期

int dayOfWeek = cal.get(cal.DAY_OF_WEEK);
out.print("<br>Day of Week: " + dayOfWeek + " <br>");

一月内的日期

int dayOfMonth = cal.get(cal.DAY_OF_MONTH);
out.print("<br>Day of Month: " + dayOfMonth + " <br>");

定位特定的日期

为了找出一周内特定的某一天就必须访问DAY_OF_WEEK字段。该字段包含了范围从1到7的整数值,1代表星期一,2代表星期二,其余以次类推。

int dayOfWeek = cal.get(cal.DAY_OF_WEEK);

这里有个向用户显示日期的好方法,那就是声明一个包含一周内天数的数组。然后就可以很方便地显示各个日期了。只要采用DAY_OF_WEEK整数访问数组内的当前日期即可。

String[] weekdays = new String[]
{“”, "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
<%=weekdays[cal.get(cal.DAY_OF_WEEK)]%>

注意该数组的第1个元素为空。这是因为DAY_OF_WEEK字段值的范围是从1到7,而数组元素的引用范围则是从0到6。在数组开头加一个空元素就可以保证DAY_OF_WEEK字段的值和数组引用相匹配了。

找出周末

为了找出某天是否正好是星期天或者星期六可以编写以下代码:

int day = cal.get(cal.DAY_OF_WEEK);
if(day == 6 day == 7)
{
//执行与周末有关的操作
}

工作日

现在我们需要计算出某个月内的工作日天数。用户输入日期(参看index.jsp)之后把参数发送给处理页面(参看display.jsp)。在处理页面上,我们把Calendar对象设置为该月的第1天。

cal.clear();
cal.set(curYear, curMonth , 1);
int maxDays = cal.getActualMaximum(cal.DATE);
out.print("<br>Number of days in month: " + maxDays + "<br>");

我们还需要知道某个月内到底有多少天。getActualMaximum()方法返回一个整数值,该值就包含了每个月内的最多天数:2月是28天,3月是31天等等。在闰年的话2月的天数返回 29天。

一旦我们得到了每个月内的最多天数,我们就可以很方便地循环每月天数判断是否是周末或者工作一日。我们用add()方法给Calendar递增1,如程序清单A所示。

用SimpleDateFormat向用户显示日期

SimpleDateFormat处理显示日期的最常用需求,它可以用来把日期转换为特定的保存格式。你可以采用以下的导入指示符:

<%@ page import="java.text.SimpleDateFormat" %>

以下的代码给用户显示日期:

SimpleDateFormat formatter = new SimpleDateFormat("dd/MMM/yyyy");
out.print("<br>" + formatter.format(cal.getTime())  );

SimpleDateFormat对象接受一个字符串作为其对象构造器,该字符串参数包含了用户希望采用的显示格式。这个格式字符串可以包含额外的格式字符串,比如空格(“ ”)、反斜线( “/”)和破折号(“-”)。

表A列出了所有有效的(常用的)显示格式。

表A

格式

示例

“dd/MMM/yyyy”

06/Mar/1974

"dd-MM-yyyy"

06-03-1974

"dd MMMMMMMMM yyyy"

06 March 1974

"EEEEEEEEE, MMMMMMMMM dd, yyyy"

Wednesday, March 06, 1974

有效的SimpleDateFormat显示格式

表B是SimpleDateFormat参数的缩略语表。

表B

y

year

M

month in year

d

day in month

D

day in year

w

week in year

W

week in month

E

day in week

SimpleDateFormat参数

重用代码--FormatTitle

在同一页面上实施多种格式转换有个简单方法:在Declaration元素中是声明FormatTitle方法,它接受两个参数,一个引用Calendar对象,另一个返回格式。

<%!
public String FormatTitle(Calendar fCal, String format)
{
SimpleDateFormat formatter = new SimpleDateFormat(format);
return (formatter.format(fCal.getTime() ));
}
%>

为了显示日期,我们调用FormatTitle()并为其传递Calendar和格式字符串参数。
<%=FormatTitle(cal, “dd-MMM-yyyy”)%>

小结

学完以上的简单教程,相信你现在应该能用Calendar和SimpleDateFormat对象操作和显示日期了。

add()和set()方法可以轻松配置Calendar,促使你可以为商业应用程序遍历月份和年数。

FormatTitle方法可以大大简化给用户显示日期的任务,同样的,它还简化了把日期转换为字符串的操作,而这一操作主要应用在数据库和XML文档的数据保存方面。

(出处:清风网络学院






上一篇:Tomcat配置JSP、Servlet和JavaBean环境

下一篇:Linux系统下配置Tomcat自行启动的方法

动态网页:在JSP应用程序中日期的用法 相关文章:
·IE浏览器再现严重安全漏洞 微软紧急发补丁程序
·为什么iexplore.exe在打开网页时CPU使用会100%?
·DIV CSS网页布局实例:十步学会用CSS建站
·非主流QQFlash模块和动态横幅
·不用任何软件(木马程序)盗取账号密码
·ping 命令的用法大全
·Flash AS3:动态文本滚动条
·Dreamweaver MX 2004做ASP程序(4)用户注册系统
·破解程序及注册机使用方法
·红色警戒2:尤里的复仇 磁能车的用法 - 游戏秘籍
动态网页:在JSP应用程序中日期的用法 相关软件:
·Dreamweaver 网页设计
·C语言程序设计
·photoshop cs 超梦幻网页创意宝典
·东方网页王III 正式版
·古典网页模板
·Google Earth 动态卫星地图 汉化版 带我们进入间谍时代 能看见你家院子
·Windows环境下32位汇编语言程序设计
·Google Earth 动态卫星地图 汉化版 能看见你家院子的车 电信做种
·中文版 AutoCAD2004 应用实例与技巧
·FLASH个人简历源程序(FLA)

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot