C# Aiuto programmazione C# Problema abbastanza semplice! +1!

Stato
Discussione chiusa ad ulteriori risposte.
Sì, non avevo fatto attenzione alle parentesi, come si può notare dalla mia spiegazione.
Comunque non era lì l'errore principale ma qui (l'ho capito leggendo su wikipedia):
Un anno è composto da 365 giorni e 6 ore. Ogni 4 anni queste 6 ore si sommano e formano un giorno in più, il 29 febbraio appunto.
In realtà anche questa misurazione è approssimata, dopo un po' di confusione tra i vari calendari (su wikipedia ce n'è riportato più di uno, con durata dell'anno che varia di qualche ora) ho trovato quello più corretto, cito wikipedia:
Wikipedia ha detto:
Il calendario gregoriano riduce ulteriormente questa approssimazione eliminando 3 anni bisestili ogni 400 anni di calendario rispetto al calendario giuliano: in questo modo la durata media dell'anno diventa di 365,2425 giorni (365 + 97/400), riducendo la differenza a soli 26 secondi di eccesso.
...
365 giorni, 5 ore, 48 minuti e 50 secondi circa
Sono questi 48 minuti e 50 secondi (i secondi variano sempre) che non facevano quadrare il mio calcolo, per il resto non faceva una piega.
Trasformati in giorni sono:
5/24= 0.208333333
48/(60*24)= 0.0333333333
50/(60*60*24)= 0.000578703704
durata anno (in giorni) = 365 + 0.208333333 + 0.0333333333 + 0.000578703704 = 365.242245
Questo valore lo si approssima a 365.2425

Approssimandolo a 365.25 (come si fa usualmente, infatti io conoscevo solo questo valore) si hanno 100 giorni in più (i bisestili) ogni 400 anni, ma non approssimandolo si hanno 97 giorni in più ogni 400 anni. Per pareggiare i conti si levano 3 giorni ogni 400 anni (il bisestile del 100simo, quello del 200esimo e quello del 300esimo).

Quindi sì: se non si tiene conto di questi 3 bisestili saltati l'algoritmo è sbagliato (o comunque impreciso).
 
Stato
Discussione chiusa ad ulteriori risposte.