Feu una funció que, donada una data vàlida a través de tres enters
que corresponen al seu dia @d@, al seu mes @m@ i al seu any @a@, retorni
el dia de la setmana en què cau, és a dir, “dilluns”, o
“dimarts”, o …
Per calcular-ho, useu la congruència de Zeller. Sigui el dia, el mes i l’any. Llavors:
Se li resta dos al mes , i si dóna zero o menys se li suma 12 al mes i se li resta u a l’any. El nou mes obtingut l’anomenem i el nou any .
Es calcula la centúria (els dos primers dígits de l’any) a partir de l’any .
Es calcula l’any dins de la centúria (els dos darrers dígits de l’any) a partir de l’any .
Es calcula
Finalment, mòdul 7 ens dóna el resultat desitjat: 0 representa diumenge, 1 representa dilluns, 2 representa dimarts, …i 6 representa dissabte.
| C++ | |
| C | |
| Java | |
| Python | |
|
|
| Haskell | |
El paràmetre corresponent a l’any està entre 1800 i 9999, ambdós inclosos. La data és vàlida.
Compte amb els mòduls de nombres negatius!
Només cal enviar el procediment demanat; el programa principal serà ignorat.
Input/Output