El dÃa maldito
Miércoles, 26 de Diciembre de 2007El Doomsday o dÃa maldito es el dÃa de la semana que cae el último dÃa de Febrero. Por ejemplo, para este año 2007, el dÃa maldito es Miércoles, que es el último dÃa de Febrero (que es el 28). La curiosidad de este dÃa, es que coincide con el del 4/4, 6/6, 8/8, 10/10 y 12/12. Es decir, que también es el mismo dÃa de la semana que el 4 de Abril, el 6 de Junio, el 8 de Agosto, el 10 de Octubre y el 12 de Diciembre (todos Miércoles para el 2007).
¿Y para que sirve esta coincidencia? Pues para calcular el dÃa de la semana de cualquier fecha con un algoritmo, de manera que tenemos un calendario perpetuo. Si memorizamos este algoritmo, podemos calcular mentalmente esta fecha y asà sorprender a nuestros amigos, hacer apuestas o, quien sabe, sacarle alguna utilidad en nuestro dÃa a dÃa.
En Java, el algoritmo queda como sigue:
Primero suponemos que los dÃas de la semana empiezan en Lunes y que se numeran del 0 al 6 (Lunes es el 0 y Domingo el 6)
int anno = 2007;
int marcador = -1;
if (anno >= 1800 && anno <1900) {
marcador = 4;
} else if (anno >= 1900 && anno <2000) {
marcador = 2;
} else if (anno >= 2000 && anno <2100) {
marcador = 1;
} else if (anno >= 2100 && anno <2200) {
marcador = 6;
}
int y = Integer.parseInt(String.valueOf(anno).substring(2,4));
int doomsday = ((((y/12)+(y%12)+((y%12)/4))%7) + marcador)%7;
Ahora la pregunta es ¿y como calculo el dÃa de la semana de cualquier fecha? Pues no hay una formula exacta, tan solo hay que saber cual es el doomsday del año que nos preguntan. Con ese doomsday, sabemos que dÃas de ese mismo año coinciden: 4/4, 6/6, 8/8, 10/10 y 12/12. Asà que si nos piden el 11 de Octubre, con sumarle un dÃa al 10/10 (que es un doomsday), podemos saber en que cae. Si nos preguntan una fecha más difÃcil (más alejada de un doomsday conocido), entonces tenemos que tirar de otra. Por ejemplo, para los meses impares, los doomsday son: 5/9, 9/5, 7/11, 11/7, que también son fáciles de recordar.
Fuente: http://quasar.as.utexas.edu/BillInfo/doomsday.html y http://es.wikipedia.org/wiki/Algoritmo_Doomsday
















Enero 4th, 2008 9:14 pm
[…] [Programación] El dÃa maldito […]