public class DateIntevalTest{

   public static void main(){
           Date date1 = new Date(2008,3,24);
           Date date2 = new Date(2009,4,5);
           int v = getMonths(date1,date2);
           System.out.println("interval="+v);
   }
   /**   
    * get months interval between two Date  
    * @param date1   
    * @param date2   
    * @return   
    */    
   private static int getMonths(Date date1, Date date2){     
       int iMonth = 0;  
       try{     
           Calendar objCalendarDate1 = Calendar.getInstance();     
           objCalendarDate1.setTime(date1);     
           Calendar objCalendarDate2 = Calendar.getInstance();     
           objCalendarDate2.setTime(date2);     
           if (objCalendarDate2.equals(objCalendarDate1))     
               return 0;     
           if (objCalendarDate1.after(objCalendarDate2)){     
               Calendar temp = objCalendarDate1;     
               objCalendarDate1 = objCalendarDate2;     
               objCalendarDate2 = temp;     
           }     
           if (objCalendarDate2.get(Calendar.YEAR) > objCalendarDate1.get(Calendar.YEAR))     
               iMonth = (objCalendarDate2.get(Calendar.YEAR) - objCalendarDate1.get(Calendar.YEAR))     
                       * 12 + objCalendarDate2.get(Calendar.MONTH)   
                       - objCalendarDate1.get(Calendar.MONTH);     
           else    
               iMonth = objCalendarDate2.get(Calendar.MONTH)     
                       - objCalendarDate1.get(Calendar.MONTH);     
       } catch (Exception e){     
        e.printStackTrace();     
       }     
       return iMonth;     
  }  
}