Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2014
    Messaggi
    12

    [JAVA] conversione di due stringhe in date

    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

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    "Non piace" in che senso? O_o
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2014
    Messaggi
    12
    Dice che è troppo complicato e a lei piace solo il Gregorian Calenda...lo so nn è normale ma è una professoressa e io mi devo attenere a ciò che preferisce ��

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Leafeon Visualizza il messaggio
    Dice che è troppo complicato e a lei piace solo il Gregorian Calenda...
    Se fai un "parse" con un qualunque (Simple)DateFormat, il ParseException comunque lo devi considerare ... è "checked". Fare catch molto più generici o molto più a monte non è nemmeno una buona soluzione.

    Comunque hai postato poco, non si riesce a capire il tuo design delle classi. Quello che si potrebbe certamente fare e migliorare è "incapsulare" l'input di date (o altro) in una classe apposita. Questo sì. Ad esempio facendo in modo che se c'è un ParseException venga richiesto l'input della data. Ma ripeto: questo andrebbe ben incapsulato.

    Quote Originariamente inviata da Leafeon Visualizza il messaggio
    ma è una professoressa e io mi devo attenere a ciò che preferisce
    Ecco ..... questo è un bel problema, in generale ... e perlomeno in Italia.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.