La
Páginas: 2 (337 palabras)
Publicado: 21 de agosto de 2015
Este algoritmo nos permite determinar el día de lasemana que le corresponde a una fecha determinada del calendario Gregoriano.
La fórmula que nosotros usaremos (con algunas modificaciones respecto de la original para poder usarla en informática) es la siguiente:
Donde h es el día de la semana (entre 0 y 6), J es año/100 (la centuria) y K es año mod 100 (el año de la centuria). Y hay que tener en cuenta que los meses deenero y febrero cuentan como el mes 13 y 14 del año anterior.
Ahora que tenemos la fórmula, programemos el algoritmo en C mediante el uso de una función:
Analicemos el código paso a paso:Tenemos en cuenta el caso de enero y febrero: Dijimos que estos meses corresponden a los meses 13 y 14 del año anterior por lo que los asignamos como corresponde (mes + 12 , que dará 13 paraenero y 14 para febrero) y le restamos 1 al año ya que son meses del año anterior. En caso contrario al mes le restamos dos para que marzo sea el mes 1 y así sucesivamente.
Calculamos K yJ: Al momento de escribir la fórmula dijimos que K es año mod 100 y J es año div 100 por lo que realizamos estos dos cálculos.
Aplicamos la fórmula: Copiamos la fórmula que copiamos al comienzo.Ahora si quisiéramos que el programa nos muestre por pantalla el día correspondiente al entero entre 0 y 6 que obtuvimos con esta función podríamos simplemente hacer un switch como éste:Donde dependiendo del entero que nos devolvió la función Zeller, escribe el día correspondiente, teniendo en cuenta que el 0 corresponde al domingo
Luego se llama a las funciones comocorresponde dentro del main y tendríamos nuestro programa listo. Para finalizar veamos qué día es hoy según el programa cuando lo ejecutamos:
Y, en efecto, es viernes...
Leer documento completo
Regístrate para leer el documento completo.