(date1.getTime() - date2.getTime()) / (3600*24*1000)

解决方案 »

  1.   

    java.sql.Date从java.util.Date继承下来,你可以强制转换
    java.sql.Date dt1;
    java.util.Date dt2 =(java.util.Date) dt1;
    然后进行计算
      

  2.   

    java.sql.Date 是从 java.util.Date 继承的,所以可以使用 java.util.Date 的方法。但是好像没有日期加减的方法。
    你可以使用 java.util.Calendar 来进行计算
      

  3.   

    因为java.sql.Date是继承java.util.Date的,所以你可以把java.sql.Date当作java.util.Date来使用的。你可以将两者的getTime()相减得到的是两者向差的毫秒数,除以86400000就可以得到天数了。
      

  4.   

    private final static GregorianCalendar c1 = new GregorianCalendar();
      private final static GregorianCalendar c2 = new GregorianCalendar();
      public static int getDayGap(Date date1,Date date2) {
        c1.setTime(date1);
        c2.setTime(date2);
        int year1 = c1.get(Calendar.YEAR);
        int year2 = c2.get(Calendar.YEAR);
        int yearday = 0;
        for(int i = Math.min(year1,year2); i < Math.max(year1,year2); i ++) {
          yearday += c1.isLeapYear(i) ? 366 : 365;
        }
        yearday *= date1.compareTo(date2);
       return yearday + c2.get(Calendar.DAY_OF_YEAR) - c1.get(Calendar.DAY_OF_YEAR) ;
      }
      

  5.   

    同意楼上的,java.sql.Date extends java.util.Date ,所以可以强制类型转换!
      

  6.   

    util.Date --> sql.Date转换按楼上的所讲强制转换不行
    问题中需要的是util.Date to sql.Date,而强制转换只能是子类 to 父类,即 sql.Date to util.Date,所以不行
    可以通过以下转换
    比如timeDate为util.Date类型,则转换如下:
    java.sql.Date dateTime = new java.sql.Date(timeDate.getTime());
    至于计算天数,可以不用以上转换都行,因为全部转成long可以相减处理
    楼上的
    (date1.getTime() - date2.getTime()) / (3600*24*1000)
    就可以