ORDINAMENTO DELLEC DATA

di il
3 risposte

ORDINAMENTO DELLEC DATA

Ciao a tutti, il famoso caso di studio lo quasi completato, mi sn messo cn un po di impegno e l'ho fatto in un gg... ora xo ho un problema. ad un certo punto mi chiede di elencare ordinati x data tutti gli elemnti registrati sul file...
ho scritto il metodo utilizzando un ordinamento a bolle... ma nn riesco a capire cm fare il confronto tra le date... qualcuno sa darmi una risposta??!?! oppure mi sa consigliare un altro algoritmo di ordianmento...

public Appuntamento ordinaAppuntamenti()
{
int i;
int j;
boolean ordinato = false;
int p=0;
while (p<appuntamenti.size())
{
p++;
ordinato = true;

for ( i=appuntamenti.size()-1; i>=p; i--)
j = i-1;
if (appuntamenti.get(i).getData() < appuntamenti.get(j).getData()) <---- "qui è il problema"
{
Appuntamento app = appuntamenti.get(i);
appuntamenti.set(i, appuntamenti.get(j));
appuntamenti.set(j, app);
ordinato = false;
}

}
for (i=0; i>= appuntamenti.size(); i++)
{
Appuntamento app = appuntamenti.get(i);
return app;
}

}

se c'è qualcosa di sbalgiato ditemi... spero in un consiglio prima di lunedi...

3 Risposte

  • Re: ORDINAMENTO DELLEC DATA

    Se le date le gestisci con l'oggetto Date, trovi un metodo dell'oggetto Date che si chiama compareTo() che accetta in input un altro oggetto di tipo Date, per appunto comparare le due date.
  • Re: ORDINAMENTO DELLEC DATA

    Overflow ha scritto:


    se le date le gestisci con l'oggetto Date, trovi un metodo dell'oggetto Date che si chiama compareTo() che accetta in input un altro oggetto di tipo Date, per appunto comparare le due date.
    veramente mi sn creato una classe Data in modo da poter gestire meglio le date, nn ho utilizzato l'implements Comparable...
    ora cm faccio!?!?!
  • Re: ORDINAMENTO DELLEC DATA

    Le gestisci quindi nella classe come stringhe?
    se si... allora dovresti fare cosi per esempio:

    mettiamo il caso in cui cData è un array di stringa che contiene la data corrente (dell'oggetto), quindi
    cData[0]=al giorno
    cData[1]=al mese
    cData[2]=all'anno
    
    boolean compareTo(String data)
    {
       String[] sData;
       sData = data.split("/"); //se la data è nel formato gg/mm/aaaa o diverso ma comunque ha come separatore il car. /
       
        for(int i=0;i<3;i++)
         if (!(sData[i].equals(cData[i]))) 
    	    	   return false;
       
       return true;
    
    } 
    
    non l'ho testata perchè ho scritto direttamente il codice qui, cmq dovrebbe andare
Devi accedere o registrarti per scrivere nel forum
3 risposte