Algoritmu pa calcular el día de la selmana

De Uiquipedia
Saltar a: navegación, buscar
Bot icon2.svg
Artículu de traducción automática a partir de "Algoritmo para calcular el día de la semana" que necesita revisión. Quita l'avisu cuando tea correxíu.
Plantía:A wikilibros

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

Introducción[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 pol 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 por aciu 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" aplicar 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 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 semana. Los meses corresponder 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 siguiente procedimientu:

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

Esto podemos espresar 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á los módulos con 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 antes del primer día del mes

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

toles divisones solo considérense 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 serí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.