JSP定位特定的日期
发表于:2007-07-04来源:作者:点击数:
标签:
为了找出一周内特定的某一天就必须访问DAY_OF_WEEK字段。该字段包含了范围从1到7的整数值,1代表星期一,2代表星期二,其余以次类推。 int dayOfWeek = cal.get(cal.DAY_OF_WEEK); 这里有个向用户显示日期的好方法,那就是声明一个包含一周内天数的数组。然
为了找出一周内特定的某一天就必须访问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”)%>
原文转自:http://www.ltesting.net