http://expert.csdn.net/Expert/topic/1058/1058703.xml?temp=.7770349

解决方案 »

  1.   

    import java.util.*;
      public class Example {
       public static void main(String[] args) {
       GregorianCalendar gc1 = new GregorianCalendar(2001, Calendar.DECEMBER, 30);
       GregorianCalendar gc2 = new GregorianCalendar(2002, Calendar.FEBRUARY, 1);
       ElapsedTime et = new ElapsedTime();
       int days = et.getDays(gc1, gc2);
       int months = et.getMonths(gc1, gc2);
       System.out.println("Days = " + days);
       System.out.println("Months = " + months);
       }
      }
      

  2.   

    下面的类的方法用来计算天数和月数。
      Import java.util.*;
      public class ElapsedTime {
       public int getDays(GregorianCalendar g1, GregorianCalendar g2) {
       int elapsed = 0;
       GregorianCalendar gc1, gc2;
       if (g2.after(g1)) {
       gc2 = (GregorianCalendar) g2.clone();
       gc1 = (GregorianCalendar) g1.clone();
       }
       else {
       gc2 = (GregorianCalendar) g1.clone();
       gc1 = (GregorianCalendar) g2.clone();
       }
       gc1.clear(Calendar.MILLISECOND);
       gc1.clear(Calendar.SECOND);
       gc1.clear(Calendar.MINUTE);
       gc1.clear(Calendar.HOUR_OF_DAY);
       gc2.clear(Calendar.MILLISECOND);
       gc2.clear(Calendar.SECOND);
       gc2.clear(Calendar.MINUTE);
       gc2.clear(Calendar.HOUR_OF_DAY);
       while ( gc1.before(gc2) ) {
       gc1.add(Calendar.DATE, 1);
       elapsed++;
       }
       return elapsed;
       }
       public int getMonths(GregorianCalendar g1, GregorianCalendar g2) {
       int elapsed = 0;
       GregorianCalendar gc1, gc2;
       if (g2.after(g1)) {
       gc2 = (GregorianCalendar) g2.clone();
       gc1 = (GregorianCalendar) g1.clone();
       }
       else {
       gc2 = (GregorianCalendar) g1.clone();
       gc1 = (GregorianCalendar) g2.clone();
       }
       gc1.clear(Calendar.MILLISECOND);
       gc1.clear(Calendar.SECOND);
       gc1.clear(Calendar.MINUTE);
       gc1.clear(Calendar.HOUR_OF_DAY);
       gc1.clear(Calendar.DATE);
       gc2.clear(Calendar.MILLISECOND);
       gc2.clear(Calendar.SECOND);
       gc2.clear(Calendar.MINUTE);
       gc2.clear(Calendar.HOUR_OF_DAY);
       gc2.clear(Calendar.DATE);
       while ( gc1.before(gc2) ) {
       gc1.add(Calendar.MONTH, 1);
       elapsed++;
       }
       return elapsed;
       }
      }