计算两个日期相差的天数

来源:互联网 发布:电脑淘宝网页有问题 编辑:程序博客网 时间:2024/04/29 21:25

用来输入两个日期的表单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;
}
}


0 0
原创粉丝点击