用来输入两个日期的表单index.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html>
<head>
<title>计算两个日期相差的天数</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<style type="text/css">
table{
border: 1px solid;
border-color: green;
font-size: 12px;
color:gray;
}
input{
font-size: 12px;
color:gray;
}
font{
color:orangered;
font-size:12px;
}
</style>
</head>
<body>
<form action="getminus.jsp" method="post">
<table>
<tr>
<td align="right">请输入第一个日期:</td>
<td><input type="text" name="datestr1" />
<font>格式为:2012-07-18</font>
</td>
</tr>
<tr>
<td align="right">请输入第二个日期:</td>
<td><input type="text" name="datestr2" />
<font>格式为:2012-07-18</font>
</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="提 交" /></td>
</tr>
</table>
</form>
</body>
</html>
用户提交之后转向getminus.jsp:
通过 request.getParameter()获取表单中的属性,并通过jsp:setProperty 赋值给JavaBean
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
%>
<!DOCTYPE HTML>
<html>
<head>
<title>计算两个日期相差的天数</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<style type="text/css">
table{
border: 1px solid;
border-color: green;
color: green;
font-size: 12px;
}
</style>
</head>
<body>
<%
String dateStr1 = request.getParameter("datestr1");
String dateStr2 = request.getParameter("datestr2");
%>
<!-- 使用useBean动作标签导入JavaBean对象 -->
<jsp:useBean id="strBean" class="com.wgh.bean.StringUtil"></jsp:useBean>
<!-- 对StringUtil类的dateStr1属性赋值 -->
<jsp:setProperty property="dateStr1" name="strBean" value="<%=dateStr1 %>"/>
<!-- 对StringUtil类的dateStr2属性赋值 -->
<jsp:setProperty property="dateStr2" name="strBean" value="<%=dateStr2 %>"/>
<table>
<tr>
<td align="right">第一个日期为:</td>
<td>
<!-- 从StringUtil对象中获得dateStr1的属性值 -->
<jsp:getProperty property="dateStr1" name="strBean"/>
</td>
</tr>
<tr>
<td align="right">第二个日期为:</td>
<td>
<!-- 从StringUtil对象中获得dateStr2的属性值 -->
<jsp:getProperty property="dateStr2" name="strBean"/>
</td>
</tr>
<tr >
<td align="right">两个日期相差的天数为:</td>
<td >
<!-- 从StringUtil对象中获得minus的属性值 -->
<jsp:getProperty property="minus" name="strBean"/>
</td>
</tr>
</table>
</body>
</html>
StringUtil.java:
package com.wgh.bean;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class StringUtil {
private String dateStr1;
//第一个日期字符串
private String dateStr2;
//第二个日期字符串
private int minus;
//两个日期的差
public String getDateStr1() {
return dateStr1;
}
public void setDateStr1(String dateStr1) {
this.dateStr1 = dateStr1;
}
public String getDateStr2() {
return dateStr2;
}
public void setDateStr2(String dateStr2) {
this.dateStr2 = dateStr2;
}
public int getMinus() {
Calendar c1 = this.getCalendar(dateStr1);
//根据第一个日期字符串获得Calendar对象
Calendar c2 = this.getCalendar(dateStr2);
//根据第二个日期字符串获得Calendar对象
long t1 = c1.getTimeInMillis();
//获得此对象的时间值,以毫秒为单位
long t2 = c2.getTimeInMillis();
//获得此对象的时间值,以毫秒为单位
long t = 1000*60*60*24;
//1000毫秒*60秒*60分钟*24小时
minus = (int)((t2-t1)/t);
//获得两个日期相差的天数
return minus;
}
public void setMinus(int minus) {
this.minus = minus;
}
public Calendar getCalendar(String dateStr) {
Date date =null;
//声明一个Date类型的对象
SimpleDateFormat format = null;
//声明格式化日期的对象
Calendar calendar = null;
if(dateStr!=null){
format = new SimpleDateFormat("yyyy-MM-dd");//创建日期的格式化类型
calendar = Calendar.getInstance();
//创建一个Calendar类型的对象
try { //forma.parse()方法会抛出异常
date = format.parse(dateStr);
//解析日期字符串,生成Date对象
calendar.setTime(date);
//使用Date对象设置此Calendar对象的时间
} catch (ParseException e) {
e.printStackTrace();
}
}
return calendar;
}
}