Se ti serve ancora, questo codice da me realizzato ti potrebbe essere utile.
E' di un vecchio post
final int GIORNI_MESE[] = {31,28,31,30,31,30,31,31,30,31,30,31};
//che giorno era il 01 gen 1 d.C. ???
final int PRIMO_GIORNO = 5;
//oggi ( data che voglio esaminare)
Data data = new Data(23,6,2014,1);
//giorni trascorsi dal giorno 0
long giorniTrascorsi = 0;
int i;
//aggiungo il giorno del mese corrente
giorniTrascorsi+=(data.giorno-1);
//aggiungo i giorni dei mesi trascorsi completamente in quest'anno
for(i = 1; i<data.mese; i++){
giorniTrascorsi+=GIORNI_MESE[i-1];
}
//aggiungo 365 giorni per ogni anno completamente trascorso
giorniTrascorsi+=(365*(data.anno-1));
//aggiungo 1 giorno (del mese bisestile) per ogni anno bisestile trascorso ( non è finita qui... )
giorniTrascorsi+=(data.anno/4);
//gli anni divisibili per 100 non sono bisestili, a parte quelli divisibili anche per 400 ( da Wiki ihihihihi )
giorniTrascorsi-=(data.anno/100)+(data.anno/400);
//se quest'anno è bisestile ma non è ancora marzo tolgo un giorno
if(data.mese<3 && (data.anno % 400 == 0 || (data.anno % 100 != 0 && data.anno % 4 == 0))){
giorniTrascorsi--;
}
//i 12 giori saltati all'introduzione del calendario
giorniTrascorsi+=12;
//mmmmmmm, non te lo apettavi...
System.out.println("Giorni trascorsi="+giorniTrascorsi);
//che nome ha oggi (wat?)
data.giornoSettimana = (int) ((giorniTrascorsi+PRIMO_GIORNO)%7);
//finalmente =)
System.out.println("Oggi è "+ data.giornoSettimana);