salve ragazzi, ho una traccia d'esame dove mi chiede di determinare il numero di libri prestati in un dato intervallo di tempo. Ora io l'ho implementato così:

codice:
private static Date trasf(String data)
    {
        Date data1=null;
        try{
            SimpleDateFormat sdf= new SimpleDateFormat("dd/MM/yyyy");
            data1 = sdf.parse(data);
            
        }catch(ParseException ex){ex.printStackTrace();}
        return(data1);
    }
    
    
    public void numPrestiti(Libri1[]v)
    {
        System.out.println("Data 1: ");
        String dt1 = in.next();
        System.out.println("Data 2: ");
        String dt2 = in.next();
        
        //Creo un array di date
        Date[] c = new Date[v.length];
        for(int i=0;i<v.length;i++)
        {
            c[i]= Libri.trasf(v[i].getData());
        }
        
        //trasformo dt1 e dt2
        Date data1 = Libri.trasf(dt1);
        Date data2 = Libri.trasf(dt2);
        
        int cont = 0;
        for(int i=0;i<c.length;i++)
        {
            if(c[i].compareTo(data1)>=0 && c[i].compareTo(data2)<=0)
            {
                cont++;
            }
        }
        
        System.out.println("I libri dati in prestito dal "+dt1+
                " al "+dt2+" sono "+cont);
        
    }
    
    
    


}
il problema è che alla mia professoressa non piace per niente ilSimpleDateFormat e il ParseException. Sapete indicarmi un'altra strada meno complessa ma che mi porti il mediso risultato?
ho provato anche in questo modo

codice:
public void intervallo(){
        
        
         System.out.println("Inserisci giorno 1:");
         int gg1 = in.nextInt();
          
         System.out.println("Inserisci mese 1:");
         int m1 = in.nextInt();
         
         System.out.println("Inserisci anno 1:");
         int a1 = in.nextInt();
         
         //GregorianCalendar data1 = new GregorianCalendar(a1, m1, gg1);
         
         System.out.println("Inserisci giorno 2:");
         int gg2 = in.nextInt();


         System.out.println("Inserisci mese 2:");
         int m2 = in.nextInt();
         
         System.out.println("Inserisci anno 2:");
         int a2 = in.nextInt();
         
        // GregorianCalendar data2 = new GregorianCalendar(a2,m2,gg2);


          
        int j=0;
        
        for(int i=0;i<contatore;i++){
            
            //GregorianCalendar temp = new GregorianCalendar();
            //temp.set(array[i].getAnno(), array[i].getMese(),array[i].getGiorno());
            
            if((array[i].getGiorno()>=gg1 && array[i].getMese()+1>=m1 && array[i].getAnno()>=a1)
            && (array[i].getGiorno()<=gg2 && array[i].getMese()+1<=m2 && array[i].getAnno()<=a1)) {
                j++;
            }
        }
        System.out.println("il numero di libri disponibile per il prestiro è: " +j);
         
        
    }
}
ma non mi calcola il nro dei libri prestati nell'intervallo temporale