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