有两个 String 类型的变量  都是日期 。然后需要调用getDaysBetween函数取得这两个日期间的间隔天数,我要怎么把那两个String 类型的变量 转换成函数可以接受的参数类型呢?对了,我GOOGLE了一下 说 java.util.Calendar 是抽象类,抽象类在JAVA里面能实例化对象吗?
  static int getDaysBetween (java.util.Calendar d1, java.util.Calendar d2) 
 {
     if (d1.after(d2)) {  // swap dates so that d1 is start and d2 is end
         java.util.Calendar swap = d1;
         d1 = d2;
         d2 = swap;
     }
     int days = d2.get(java.util.Calendar.DAY_OF_YEAR) -d1.get(java.util.Calendar.DAY_OF_YEAR);
     int y2 = d2.get(java.util.Calendar.YEAR);
     if (d1.get(java.util.Calendar.YEAR) != y2) {
         d1 = (java.util.Calendar) d1.clone();
        do {
             days += d1.getActualMaximum(java.util.Calendar.DAY_OF_YEAR);
             d1.add(java.util.Calendar.YEAR, 1);
                   } while (d1.get(java.util.Calendar.YEAR) != y2);
               }
             return days;
          }

解决方案 »

  1.   

    顺便说下 String Ex_date=sdf.format(d);
    String Now_date=sdf.format(now);  两个日期都用使用SimpleDateFormat规定好格式了public void Format()
                {
    sdf = new SimpleDateFormat("yyyy-MM-dd");  
          try {            
     d = sdf.parse(dStr);  
       
     } catch (ParseException pe) {            
    System.out.println(pe.getMessage());     
               }
               
      }
      

  2.   

    谁来说句话我就给分结贴! JAVA这玩意也真他妈的麻烦。(因为自己不懂,呵呵)
    String Ex_date=sdf.format(d);
    String Now_date=sdf.format(now);
    Date   d1   =   sdf.parse(Ex_date); 
    Date   d2   =   sdf.parse(Now_date);   
    GregorianCalendar   d11   =   new   GregorianCalendar();   
    GregorianCalendar   d22   =   new   GregorianCalendar();   
    d11.setTime(d1);   
    d22.setTime(d2);   
    int day=getDaysBetween(d11,d22);先把String 转成Date  Date再转成GregorianCalendar 类型,才能调用那个 别人写好的函数!