Toc toc, posso entrare?
io avrei una soluzione, ma non so se è corretta...
Ho provato con alcune date e sembra funzionare, ma sono così che praticamente non ho idea di cosa stia facendo...
Come vi sembra?
public class Data {
int giorno;
int mese;
int anno;
//0 -> lunedì
int giornoSettimana;
// costruttore
public Data(int giorno, int mese, int anno, int giornoSettimana) {
this.giorno = giorno;
this.mese = mese;
this.anno = anno;
this.giornoSettimana = giornoSettimana;
}
}
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 = 0;
//oggi ( data che voglio esaminare)
Data data = new Data(1,3,100,-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--;
}
//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);
ps: ebbene si, questo antico documento è scritto nell'arcana e proibita lingua consciuta con il nome di... JAVAAAAA
pps: @Oregon
nel mio libro di storia c'è scritto che nel 20.000 a.C. gli uomini primitivi ... ecc...
E, anche se nel 20.000 a.C. non esistevano calendari, i giorni sono del tutto rappresentabili...