int i = 0;
    GregorianCalendar g=new GregorianCalendar(year1,month1,day1);
    GregorianCalendar g2= new GregorianCalendar(year2,month2,day2);
   while (!g.equals(g2)) {
        if (g.before(g2)) {
            g2.add(Calendar.DATE, -1);
            i++;
        } else if (g.after(g2)) {
            g2.add(Calendar.DATE, 1);
            i++;        }    }

解决方案 »

  1.   

    我的笨方法:将日期对象都转换成距离1970年1月1号午夜所差的豪秒数,然后相减,最后除以一天的豪秒数。//c1 c2是两个需要比较的Calendar类型的对象
    long l1 = c1.getTimeInMillis();
    long l2 = c2.getTimeInMillis();long  d = (l1 - l2)/(1000 * 60 * 60 * 24); //其中1000 * 60 * 60 * 24是一天包含的豪秒数。
      

  2.   

    不过,按照 Mailbomb(网络咖啡)的办法,如果相差一天的话,d=0;
    是不是,l1 - l2的值永远都小于1天的毫秒数的?