salve
abbiamo un problema per il quale java ci viualizza questo messaggio:
codice:
Exception in thread "main" java.lang.NullPointerException
at Verifica.data(Verifica.java:7)
at InterfacciaAgenda.ins(InterfacciaAgenda.java:63)
at ApplicazioneAgenda.main(ApplicazioneAgenda.java:45)
ecco il codice ke chiama la classe verifica.data()
codice:
public void ins() throws IOException, ClassNotFoundException{
for (int i = 0; i < 9; i++) { //svuoto l'array
dati[i] = "";
}
System.out.println("");
System.out.println("Inserire i dati [Q per annullare]:");
System.out.println("");
do {
System.out.println("Inserire correttamente Cognome e Nome o Nominativo *: ");
dati[0] = in.nextLine();
if (dati[0].equalsIgnoreCase("Q")) { //ad ogni inserimento di valori in input verifico se l'utente vuole annullare l'operazione
System.out.println("");
return;
}
} while (dati[0] == null || dati[0].length() == 0 || dati[0].equals(" "));
do {
System.out.println("Luogo di appuntamento: ");
dati[1] = in.nextLine();
if (dati[1].equalsIgnoreCase("Q")) {
System.out.println("");
return;
}
} while (dati[1] == null);
do{
System.out.println("Inserire la data nel seguemte formato (GG-MM-AAAA): ");
dati[2] = in.nextLine();
if (dati[2].equalsIgnoreCase("Q")) {
System.out.println("");
return;
}
} while (dati[2].equals("") || (dati[2].length() != 10) || ! (dati[2].substring(2, 3).equals("-"))
|| ! (dati[2].substring(5, 6).equals("-")) );
verifica.data();
ecco il codice di verifica.data()
codice:
public class Verifica{
public String data(){
String giorni =(dati[2].substring(0,2));
int giorno=(Integer.parseInt(giorni));
if (giorno >31)
{ out.println("Giorno errato");
return null;
}
String mesi = (dati[2].substring(4,5));
int mese=(Integer.parseInt(mesi));
if (mese >12)
{ out.println ("Mese errato");
return null;
}
String anni =(dati[2].substring(7,10));
int anno=(Integer.parseInt(anni));
if (mese == 2)
{
if (anno%400 == 0 || (anno%4 == 0 && anno%100 != 0))
{
if (giorno > 29)
{out.println("L'anno "+anno+" è bisestile,per cui il mese di febbraio ha massimo 29 giorni" );}
else
{if (giorno > 28)
{out.println("Dato che "+anno+" non è bisestile, febbraio ha massimo 28 giorni" );}
}
}
}
else
{
if (mese ==1 || mese ==3 || mese ==5 || mese ==7 || mese ==8 || mese ==10 || mese ==12)
{
if (giorno > 31){
out.println("Per il mese "+mese+ " il giorno è errato!!!");
}}
else
{
if (giorno > 31){
out.println("Per il mese "+mese+ " il giorno è errato!!!");
}
}
} return null;
}
aiuto!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!