Título: Programa para averiguar el dia de la semana Publicado por: Caster en 18 Julio 2013, 15:40 pm Buenas, en un libro que estoy leyendo viene un programa, que a partir de una fecha base (Lunes, Enero 1, 1900) averigua el dia de la semana introduciendo dia mes y año. El programa entero es el siguiente:
Código
el codigo esta copiado exactamente igual que en libro, con los comentarios para explicarlo. Me ha costado, pero he entendido, en parte, la logica del programa, porque lo que no entiendo es como hace la funcion convertir para sacar el dia de la semana, de esa funcion la unica linea que entiendo es esta: Código
Lo que hace es sacar los años que han pasado desde el año 1900 hasta hoy, pero a partir de ahi no entiendo nada de nada y queria pedir a ver si alguien me lo explica de alguna manera mas clara que en libro. Título: Re: Programa para averiguar el dia de la semana Publicado por: eferion en 18 Julio 2013, 15:59 pm Código
Enero: 31 días Febrero: 28 días Marzo: 31 días Abril: 30 días ... Total días por año: 365 días ( 12 meses ) Media de días por mes: 365 / 12 = 30.41666 Para calcular el número de días calcula la media de días por mes y lo multiplica por el número de mes que hayas puesto. Luego hace un ajuste rápido para los meses de menos de 31 días y ajusta también posibles años bisiestos y listo. Título: Re: Programa para averiguar el dia de la semana Publicado por: Caster en 18 Julio 2013, 16:06 pm Código
Enero: 31 días Febrero: 28 días Marzo: 31 días Abril: 30 días ... Total días por año: 365 días ( 12 meses ) Media de días por mes: 365 / 12 = 30.41666 Para calcular el número de días calcula la media de días por mes y lo multiplica por el número de mes que hayas puesto. Luego hace un ajuste rápido para los meses de menos de 31 días y ajusta también posibles años bisiestos y listo. Es a partir de esa linea lo que no entiendo, por que si es Febrero le suma un dia, si esta entre Marzo y Julio se lo resta, a partir de esa linea no entiendo ningun ajuste de los que hace. Título: Re: Programa para averiguar el dia de la semana Publicado por: eferion en 18 Julio 2013, 16:25 pm a ver... si tu sabes que, de promedio, cada mes tiene 30.42 días.
Si tu pones 5 de Julio de 1900... qué día del año es?? Lo primero es calcular el número de días hasta Julio, es decir, 30.42 * ( 7 - 1 ) = 182.52. Como estás trabajando con enteros, el resultado se trunca a 182. Si tu sumas: 31 + 28 + 31 + 30 + 31 + 30 = 181 ( uno menos ). Luego en las siguientes líneas hace los ajustes necesarios para terminar de cuadrar el dato. Una vez que tienes el número de días que hay entre el 1 de enero de 1900 y la fecha que has introducido, divides entre 7 y te quedas con el resto... ese resto te da el día de la semana. Título: Re: Programa para averiguar el dia de la semana Publicado por: Caster en 18 Julio 2013, 16:34 pm Vale, ahora creo que lo entendi todo, muchas gracias.
|