//java.util.Date d1,d2;
int daysBetween=(int)(d1.getTime()-d2.getTime())/(1000*60*60*24)

解决方案 »

  1.   

    楼上的没考虑时分秒的问题Date[] d=new Date[2];
    d[0]=new Date("...");
    d[1]=new Date("...");
    Calendar[] cal=new Calendar[2];
    for(int i=0;i<cal.length;i++){
      cal[i]=Calendar.getInstance();
      cal[i].setTime(d[i]);
      cal[i].set(Calendar.HOUR_OF_DAY,0);
      cal[i].set(Calendar.MINUTE,0);
      cal[i].set(Calendar.SECOND,0);
    }
    long m=cal[0].getTime().getTime();
    long n=cal[1].getTime().getTime();
    int k=(int)Math.abs((m-n)/1000/3600/24);
      

  2.   

    long date1 = d1.getTime() / (1000l*60*60*24);
    long date2 = d2.getTime() / (1000l*60*60*24);这样就可以得到这两个日期的日数
    date1 - date2 就可以了
      

  3.   

    public static int getDiffDays(String beginDate, String endDate)throws DefaultException{
    java.util.Date td1 = null;
    try {
    td1 = new SimpleDateFormat("yyyy-MM-dd").parse(beginDate);
    } catch (ParseException e1) {
    e1.printStackTrace();
    } long lBeginTime = td1.getTime();
    java.util.Date td2 = null;
    try {
    td2 = new SimpleDateFormat("yyyy-MM-dd").parse(endDate);
    System.out.println(td2);
    } catch (ParseException e) { e.printStackTrace();
    }
    long lEndTime = td2.getTime();
    int iDay = (int) ((lEndTime - lBeginTime) / 86400000);
    return iDay;