cosi è ottimizzato: 
	codice:
	import java.util.*;
class Ora{
  public static void main(String[] args)
  {
   giornoMese(Calendar.MARCH);
   giornoMese(Calendar.OCTOBER);
  }
 static void giornoMese(int mese){
    GregorianCalendar d = new GregorianCalendar();
    d.set(Calendar.DAY_OF_MONTH, 22);
    d.set(Calendar.MONTH, mese);
    int giorno=0;
    int month = d.get(Calendar.MONTH);
    while(d.get(Calendar.MONTH) == month){
		if(d.get(Calendar.DAY_OF_WEEK) == 1)
		  giorno = d.get(Calendar.DAY_OF_MONTH);
		d.add(Calendar.DAY_OF_MONTH, 1);
    }
    System.out.println(giorno);
 }
}
 
 