static int getDayBetween(Date d1,Date d2){
Calendar before=Calendar.getInstance();
Calendar after=Calendar.getInstance();
if(d1.before(d2)){
before.setTime(d1);
after.setTime(d2);
}
else{
before.setTime(d2);
after.setTime(d1);
}
int days=0;

int startDay=before.get(Calendar.DAY_OF_YEAR);
int endDay=after.get(Calendar.DAY_OF_YEAR);

int startYear=before.get(Calendar.YEAR);
int endYear=after.get(Calendar.YEAR);
before.clear();
before.set(startYear,0,1);

while(startYear!=endYear){
before.set(startYear++,Calendar.DECEMBER,31);
days+=before.get(Calendar.DAY_OF_YEAR);
}
return days+endDay-startDay;
}

解决方案 »

  1.   

    public static void main(String[] args) {
          long num=(getCaldate("2005-2-16").getTimeInMillis()
                    -getCaldate("2004-9-28").getTimeInMillis())/1000/3600/24;
          System.out.println(num);
        }
        public static Calendar getCaldate(String datestr){
          String s[]=datestr.split("-");
          Calendar d=Calendar.getInstance();
          d.clear();
          d.set(Integer.parseInt(s[0]),
                Integer.parseInt(s[1])-1,
                Integer.parseInt(s[2]),0,0,0);
          return d;
        }