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ì:
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?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); } }
ho provato anche in questo modo
ma non mi calcola il nro dei libri prestati nell'intervallo temporalecodice: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); } }

Rispondi quotando
