1、首先很谢谢百忙之中抽时间看这个帖子、不罗嗦直接上问题2、问题1、我从数据库取出两个 日期格式的 Date类型的数据、格式是 YY-MM-DD hh:mm:ss 一个开始日期、一个结束日期   JSP页面上面有两个查询条件、一个开始日期 、一个结束日期、数据库的开始时间我们叫他 加工开始时间、结束加工时间、页面上 我们叫他 查询开始时间 查询结束时间、现在例子1、查询事件  S: 2009-10-09  T:2009-10-10 数据库 有一条数据 开始时间是 2009-10-8 08:13:53 结束时间是 2009-10-09 08:15:53 秒 查询规则: 只要开始或者结束时间 在这个时间段之内 都要查询、那么 我查询出来了 这条数据 开始时间是 2009-10-8 08:13:53 结束时间是 2009-10-09 07:15:53 秒 我在页面上进行判断  getTime进行判断、两个时间相差多少天 不足一天、我 8号 这天 加工了 9号也加工了 应该算 2天、矛盾也就出来了、我应该用什么方法来判断这个是进行了 2天 而不是 计算小时 来判断间隔天数

解决方案 »

  1.   

    SQL server中的函数DATEDIFF可以的!别的数据库产品也有的,你可以自己去搜搜!有哪些函数,改怎么用!
      

  2.   


     这个方法  和  getTime  然后  这样 计算天数一样  24*60*60*1000它也是按时间来计算的 如果我用 day 一样 3号 一个跨度 到 4号 计算出来还是 1天、
      

  3.   

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    用上面的format对象处理下再计算试试
      

  4.   

    给点分吧
    //该方法为计算查询时间段
    //interval :D表示查询精确到天数的之差
    //interval :H表示查询精确到小时之差
    //interval :M表示查询精确到分钟之差
    //interval :S表示查询精确到秒之差
    //interval :T表示查询精确到毫秒之差
    //使用方法:
    //alert(dateDiff('D', '2007-4-1', '2007/04/19'));function dateDiff(interval, date1, date2){
            //var objInterval = {'D' : 1000 * 60 * 60 * 24, 'H' : 1000 * 60 * 60, 'M' : 1000 * 60, 'S' : 1000, 'T' : 1};
            //interval = interval.toUpperCase();
            var dt1 = Date.parse(date1.replace(/-/g, '/'));
            var dt2 = Date.parse(date2.replace(/-/g, '/'));
            try
            {
                return Math.round((dt2 - dt1) / (1000 * 60 * 60 * 24));//这里只精确到天
            }
            catch (e)
            {
                return 0;
            }
        }//调用
    if(dateDiff('D',startTime,endTime)>7){
    if(!window.confirm("您所要查询的时间段超过一周,等候时间可能较长,是否继续?")){
        return;
    }
    }
      

  5.   

    参考下 String str1 = "2009-10-8 08:13:53 ";
    String str2 = "2009-10-09 07:15:53"; SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd"); Date date1 = sf.parse(str1);
    Date date2 = sf.parse(str2); Calendar cal1 = Calendar.getInstance();
    Calendar cal2 = Calendar.getInstance(); cal1.setTime(date1);
    cal2.setTime(date2); while (cal1.compareTo(cal2) <= 0) {
    System.out.println(sf.format(cal1.getTime()));
    cal1.add(Calendar.DAY_OF_YEAR, 1);
    }
      

  6.   

    正好做过这个,希望对你有帮助/**Created on 2010-7-31 
     * <p>Description:[返回 endDate - startDate的天数]</p>
     * @param startDate [YYYY-MM-DD]
     * @param endDate [YYYY-MM-DD]
     * @return
     * @author: Administrator
     * @update: [日期YYYY-MM-DD] [更改人姓名]
     */
    public static int getDecDays(String startDate, String endDate) {
    java.sql.Date date1 = java.sql.Date.valueOf(startDate);
    java.sql.Date date2 = java.sql.Date.valueOf(endDate);
    int days = (int) ((date2.getTime() - date1.getTime()) / (1000 * 60 * 60 * 24) + 0.5);
    return days;
    }
      

  7.   

    用Calendar这个算吧  网上有的是