MENÚ Icono menu a88f108668e61e4a56edafd7b73bfbbe5ec1abb5159eb5e97a5153a361b91010
Volver al BLOG

Calculando el día de la seamana, algoritmo de Tomohiko Sakamoto > Programación

Escrito por SoftGalia S.L.


En 10 lineas de "Código Caviar"

Calendario teclado

Julius Christian Johannes Zeller a finales de siglo XVII presenta su versión para el cálculo del el día de la semana, mas tarde  John Conway nos regala la regla de cálculo mental del día de la semana, ahora tenemos el nuevo algoritmo de  Tomohiko Sakamoto que nos permite ahorrar una gran cantidad de tiempo en este tipo de cáiculos y en consecuencia de energía.

Este es el código de Tomohiko Sakamoto, como podéis observar en 10 líneas de código resuelve el problema.

#include <stdio.h>

int dow(int y, int m, int d) {

       static int t[] = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4};

       y -= m < 3;

       return (y + y/4 - y/100 + y/400 + t[m-1] + d) % 7;

}

 

int main(void) {

        const char *days[] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};

        printf("%s\n", days[dow(2013, 5, 13)]); 

        return 0;

}

Volver al BLOG
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación para mostrarle publicidad personalizada y realizar análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. OK Más información | Y más