il problema era nel formato dei giorni e dei mesi.
avrei dovuto metterci uno 0 davanti ai numeri singoli.
ho risolto facendo due cicli for e mettendo il .parseInt a base 10:
codice:
private static String[] riempiMese(){
String[] mesi=new String[12];
int conta=1;
for(int i=0; i<9; i++){
mesi[i]="0"+conta;
conta++;
}
for(int i=9; i<mesi.length; i++){
mesi[i]=""+conta;
conta++;
}
return mesi;
}
private static boolean controllaData(String data){
int giorno=Integer.parseInt(data.substring(0,2),10);
int mese=Integer.parseInt(data.substring(3,5),10);
if(mese==2 && giorno>29){
return false;
}
if(mese==4 && giorno>30){
return false;
}
if(mese==6 && giorno>30){
return false;
}
if(mese==9 && giorno>30){
return false;
}
if(mese==11 && giorno>30){
return false;
}
else{
return true;
}