Introducción
Seguro que os ha pasado esto alguna vez:
- +El día 17 tenemos una reunión
- -El dia 17… ¿En qué cae?
- +Espera que lo miro…
¿A que si? Pues en este artículo descubriréis el truco para saber en qué día cae un número del mes sin tener que mirar un calendario. Así que, ¡Atentos!
Números congruentes
Dos números son congruentes de módulo m cuando al dividir cada uno de ellos entre m se obtiene el mismo resto R.
Un ejemplo podría ser el 8 y el 53 congruentes de módulo 5, ya que 8/5 y 53/5 dan como resto 3.
Esta propiedad es muy utilizada. Mucho más de lo que nos pensamos.
Por ejemplo, para determinar la hora usamos constantemente congruencias de módulo 12. Así, el 2 es congruente con el 14 de módulo 12, o el 6 es congruente con el 18 de módulo 12.
Además, muchísimos códigos de verificación emplean esta propiedad. La letra del DNI se calcula empleando congruencias así como para calcular el DC de las cuentas bancarias
Qué día de la semana es hoy
Tras introducir la base matemática, vamos a explicar el método.
Como os podréis imaginar, emplearemos congruencias de módulo 7. El principal problema es que los meses en general no empiezan en un lunes. Es decir, necesitaremos la condición inicial de saber en qué día empezó el mes. O más intuitivamente, cuántos huecos en blanco tiene.
Vamos a tomar como ejemplo el mes de Noviembre de 2019.
El método consistirá en aplicar la congruencia de módulo 7 para el caso de que el 1 del mes es lunes y luego aplicar una traslación en función del número de días vacíos.
El método
Vamos a calcular en qué día cae el 22
Hacemos 22/7 y obtenemos de resto el 1. A eso le sumamos el número de días vacíos, que en este caso son 4. Obtenemos un 5 –> El día es Viernes
La suma es mayor estricto que 7
Vamos a averiguar en qué día cae el 18.
Hacemos 18/7 y obtenemos de resto el 4. Le sumamos el número de días vacíos, que son 4. Obtenemos un 8 y observamos que es mayor estricto a 7.
Entonces volvemos a aplicar la congruencia, de tal forma que 8/7 nos da de resto 1 –> El día 18 cae en Lunes.
Si el resto fuese 7, el día sería el Domingo
Algoritmo cálculo de día
Para finalizar este breve artículo voy a articular lo que sería el algoritmo para calcular en qué día de la semana cae un día.
Supondremos que el cálculo lo proporciona una función f que tiene 2 entradas; el número de días vacíos y el día que queremos calcular.
La función sería de la forma f=f(ndb,dc) . Con:
- ndb = Número de días en blanco
- dc = Día a calcular
El algoritmo sería el siguiente:
R1=mod(dc,7)
R2=R+ndb
¿Es R2 > 7?
- Sí
- R3=mod(R,7)
- R3 se corresponde con el día de la semana (Ejemplo 1 para Lunes, 2 para Martes…)
- R3=mod(R,7)
- No
- R2 se corresponde con el día de la semana (Ejemplo 1 para Lunes, 2 para Martes…)