PDA

View Full Version : [JAVA] esecuzione anomala!


greedydevil
20-07-2011, 19:01
qualcuno saprebbe spiegarmi come è possibile che vengono stampate due volte le stesse date?!assurdo!posto il codice...



import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;


public class Main {

public static void prova(Date data){
System.out.println("sono dentro il metodo di prova:" + data);
}

public static void main(String[] args) {

Calendar calendar = Calendar.getInstance();
DateFormat data = new SimpleDateFormat("dd-MMM-yy"); //settaggio data
DateFormat annoAttuale = new SimpleDateFormat("yy"); //settaggio anno corrente

String fineAnno = "23-lug-" + annoAttuale.format(calendar.getTime());
String dataAttuale = data.format(calendar.getTime());
boolean condizione = true;

while (condizione){

if(dataAttuale.equals(fineAnno)){
condizione = false;
Date dataOk;
try {
dataOk = data.parse(dataAttuale);
prova(dataOk);

} catch (ParseException e) {
e.printStackTrace();
}

}else{
calendar.add(data.DAY_OF_WEEK_FIELD, 1);
dataAttuale = data.format(calendar.getTime());
System.out.println("Istanza di Calendar aggiornata di un giorno:" + dataAttuale);
}
}

System.out.println("Sono uscito che la data attuale vale: " + data.format(calendar.getTime()) );


}

}



Sto impazzendo!non riesco proprio a capire...

ndakota
20-07-2011, 19:33
Scusa ma è troppo caotico. Non si capisce nemmeno quale che sia il tuo intento.
Comunque, sicuro di non voler stampare la variabile calendar?

greedydevil
20-07-2011, 19:39
lo sò,purtroppo non ha indentato il codice :-(
cmq praticamente vorrei prendere una data,stamparla ed aggiornarla con calendar fino a quando arrivo alla data stabilita...
Purtroppo ogni data mi viene stampata due volte e non capisco il perche! ti posto l'esecuzione...

Istanza di Calendar aggiornata di un giorno:21-lug-11
Istanza di Calendar aggiornata di un giorno:21-lug-11
Istanza di Calendar aggiornata di un giorno:22-lug-11
Istanza di Calendar aggiornata di un giorno:22-lug-11
Istanza di Calendar aggiornata di un giorno:23-lug-11
sono dentro il metodo di prova:Sat Jul 23 00:00:00 CEST 2011

Ho messo come data di inizio quella di oggi (21-lug-11) e quella di fine il 23...
In teoria dovrei visualizzare 3 stampe e non 5!!

Spero di essere stato più chiaro.

rino1982
20-07-2011, 21:17
Sostituisci
calendar.add(data.DAY_OF_WEEK_FIELD, 1);

con

calendar.add(Calendar.DATE, 1);

Ciao

greedydevil
20-07-2011, 21:23
miticoooooooo!!funziona ora!!anche se al posto di calendar.add(Calendar.DATE, 1); ho dovuto mettere calendar.add(calendar.DAY_OF_WEEK_FIELD, 1);!!

Praticamente al posto di farlo sulla variabile data,lo dovevo fare sulla variabile calendar!!Ora funziona alla grande,anche se non ho capito il perchè lo stampava due volte!cmq...grazie a tuttiiiiiiii