Algoritmu pa calcular el día de la selmana

De Uiquipedia
Saltar a: navegación, buscar

L'algoritmu pa calcular el día de la selmana tien como finalidá saber el día de la selmana pa una fecha dada mesmo del pasáu que del futuru. De fechu, hai un conxuntu numberosu d'algoritmos pa perfacer esti cálculu, ente ellos ta l'Algoritmu Doomsday, anque toos son variantes pequeñes ente ellos, de tala forma qu'emplegando distintos conxuntos de riegles llógrase la mesma resultancia. Una aplicación típica d'esti algoritmu ye calcular el día de la selmana en que nació una persona o nel qu'asocedió un eventu especial.

Entamu[editar | editar la fonte]

El fundamentu de toa esta familia d'algoritmos pa calcular el día de la selmana ye:

  1. Numberar los díes de la selmana empezando pel cero hasta'l seis d'esta forma podemos emplegar aritmética módulu 7 p'añedir el númberu de díes trescurríos dende l'empiezu d'un periodu.
  2. Buscar o calcular per aciu d'una riegla en qué día de la selmana empezó un sieglu.
  3. Buscar o calcular en qué día de la selmana empezó un añu dáu.
  4. Buscar o calcular en qué día empieza un mes dáu, sabiendo l'añu.

Conceutos útiles[editar | editar la fonte]

Meses correspondientes[editar | editar la fonte]

El conceutu "meses correspondientes" aplícase a aquellos meses del calendariu qu'empiecen nel mesmu día de la selmana. Por casu, setiembre y avientu son correspondientes una y bones el 1 de setiembre cai nel mesmu día de la selmana que'l 1 d'avientu. Los meses son correspondientes si'l númberu de díes ente ellos ye divisible ente 7. Por casu febreru correspuende con marzu yá que febreru tien 28 díes, esto ye, un númberu divisible ente 7, y 28 díes son esactamente cuatro selmanes. Los meses correspuenden de la siguiente manera:

Nun añu común

Nun añu bisiestu

Procedimientu[editar | editar la fonte]

Pa determinar el día de la selmana d'una fecha del calendariu gregorianu, podemos siguir el viniente procedimientu:

  1. Calcular la cantidá de díes trescurríos hasta la fecha.
  2. Calcular el módulu al respective de 7.
  3. El valor llográu va ser el día de la selmana de la fecha.

Esto podemos espresalo de la siguiente manera:

d = ((A - 1) \cdot 365 + \left ( \frac{A-1}{4} - \frac{3 \cdot \left( \frac{A - 1}{100} + 1 \right )}{4} \right ) + DM + D) % 7 \,\!

Sicasí, en realidá nun tenemos de calcular el total de díes, sinón namái los módulos al respective de 7. Entós, la nuesa espresión amenórgase asina:

d = ((A - 1) % 7 + \left ( \frac{A-1}{4} - \frac{3 \cdot \left( \frac{A - 1}{100} + 1 \right )}{4} \right ) % 7 + DM % 7 + D % 7) % 7 \,\!

Onde:

  • d \,\! = día de la selmana *A \,\!

= Añu *DM
\,\! = Díes trescurríos hasta primero del primer día del mes

  • D \,\! = Día *%
\,\! = Módulu *En

toles divisones consideren namái les cifres enteres.

Amás, tengamos en cuenta que tenemos de conocer el módulu correspondiente a cada "entamu" de mes. Asina, si tamos buscando una fecha de xunetu, el módulu sedría:

x = (31 % 7 + 28 % 7 + 31 % 7 + 30 % 7 + 31 % 7 + 30 % 7) % 7 \,\!
x = (3 + 0 + 3 + 2 + 3 + 2) % 7 \,\!
x = 6 \,\!

Vamos crear entós una tabla que contenga los módulos acumulaos per mes.

Meses Y F M A M J J A S O N D
Añu regular 0 3 3 6 1 4 6 2 5 0 3 5
Añu bisiestu 0 3 4 0 2 5 0 3 6 1 4 6

D'últimes el nuesu algoritmu quedaría asina:

d = ((A - 1) % 7 + \left ( \frac{A-1}{4} - \frac{3 \cdot \left( \frac{A - 1}{100} + 1 \right)}{4} \right ) % 7 + M + D % 7) % 7 \,\!

Onde:

M \,\! = Módulu correspondiente al mes.

Exemplu[editar | editar la fonte]

Calcular el día de la selmana pal 25 de mayu de 2007:

  • A = 2007 \,\!
  • M = 1 \,\!
  • D = 25 \,\!


(A - 1) % 7 = 2006 % 7 = 4 \,\!
\left (\frac{A-1}{4} - \left (\frac{ 3 \cdot \left( \frac{A - 1}{100} + 1\right)}{4}\right ) \right ) % 7 = \left(501 - \left (\frac{63}{4}\right ) \right) % 7 = 3 \,\!
D % 7 = 25 % 7 = 4 \,\!
d = (4 + 3 + 1 + 4) % 7 = 5 \,\!

Si'l 0 correspuende al domingu, entós 5 correspuende a vienres.