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!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!