5.2.07

Pregunta da semana: Calendario casi perpetuo


O ex-alumno, do que xa vos teño falado, Santiago Castro Castrillón, mandoume esta curiosidade que lle podemos chamar "calendario casi perpetuo" (grazas Santiago).
Ademais Santiago contestou á anterior pregunta da semana xa hai uns días e estiven esperando a publicar as súas respostas para ver se algún(ha) de vos respostaba tamén para poder puntuarvos.

Seguindo estes pasos podes calcular o día da semana dunha data calquera dos anos de catro cifras que empecen por 19 (como 1986) ou 20 (como 2004).

1. Divide as dúas últimas cifras do ano entre 4, descartando o resto.
2. Suma ao resultado o día do mes.
3. Suma a clave do mes: XFM AMX XAS OND = 144 025 036 146
4. Resta 1 para os meses de Xaneiro e Febreiro nos anos bisiestos [*]
5. Resta 1 se a data empeza por 20.
6. Engade o número formado polos dous últimos díxitos do ano.
7. Divide entre 7 e toma o resto. O resto indica o día da semana, sendo: 0 sábado, 1 domingo, 2 luns, 3 martes, 4 mércoles, 5 xoves, 6 venres

Truco: para non traballar con números tan grandes podes restar 7 ou múltiplos de 7 en calquer momento do proceso e quedarte só coa diferenza.

Notas:
[*] No calendario gregoriano son bisiestos tódolos anos múltiplos de 4.
Os anos seculares (os que acaban en 00), só son bisiestos cando son múltiplos de 400. Por exemplo, 1900 non foi bisiesto, a pesares de ser múltiplo de 4, xa que é un ano secular non múltiplo de 400, en cambio se o foi 2000. Para saber cando un número é múltiplo de 4 basta fixarse nas súas dúas últimas cifras, se son múltiplo de 4 (dúas veces divisibles por 2), tamén o é o número.

Exemplo
Vamos a calcular qué día da semana foi o 29 de decembro de 1989.
1. 89/4=22, descartamos o resto
2. 22+29=51
3. A clave de decembro é 6, así que 51+6=57.
4. Non hai que facer nada.
5. Non hai que facer nada.
6. 89+57=146
7. 146/7=20 +6 de resto
A data pedida foi venres

DEBES, SEGUINDO E DETALLANDO OS CÁLCULOS ANTERIORES, DICIR QUE DÍA DA SEMANA CAEU O 22 DE FEBREIRO DE 1966.

5 comentarios:

Eduardo dijo...

Probei o método e non funciona. O pubnto 5 (Resta 1 se a data empeza por 20) debe ser o que da problemas. Non está claro. Según este método o 22 de febreiro de 1966 foi luns, pero realmente foi martes. O método está mal.

Anónimo dijo...

pois a min dame martes, faigoche os calculos:
1) 66/4 = 16.5
Collemos o 16

2) 16 + 22 = 38

3) 38 + 4 = 42

4) -

5) -
Nota: falas se o fallo estará neste punto, pero para a data pedida non hai que facer nada

6) 42 + 66 = 108

7) 108 módulo 7 = 3
Mirando o método o 3 corresponde co martes.

Nesta web pódese calcular o día a partires da data:

http://centros5.pntic.mec.es/ies.de.bullas/dp/matema/javas/dia_semana.htm

Se mirades o código fonte da web podedes ver o método (eu non o fixen por falta de tempo, pero non debería ser moi complexo comprendelo.

Saúdos

Eduardo dijo...

Tes razón, eu restaba 1 no punto 5 xa que a data é un 22 (entendía eu mal iso de que empece por 20: Refírese ao ano, supoño)

Anónimo dijo...

Estaba mirando e, como xa imaxinaba, no código fonte desa web para obter o día usa as funcións propias da librería de javascript, asi que o resultado que dá sería extremadamente raro que sexa incorrecto.

Outro saúdo

Anónimo dijo...

Si, refírese ó ano o de empezar por 20.
Importante que o método só vale para para datas entre 1900/01/01 e 2099/12/31

Nota: manexando ben a táboa do 7 para facer rapidamente as restas de multiplos de 7 (tamen chamado módulo 7) en cada paso faise (polo menos para min) máis sinxelo e rápido o proceso para facelo mentalmente. E se ademais partimos sabendo o ano (por exemplo se queremos calcular mais axilmente os días de nacemento dos compañeiros de clase, que sabemos de antemán en que ano naceron) pódese simplificar o método para ese ano concreto, e respostar en apenas uns segundos (o paso 1 é sempre igual para ese ano, e evitas ter que pensar se necesitas facer os pasos 4 e 5)