Wikiwand AI

Cálculo del día de la semana

From Wikipedia, the free encyclopedia

La determinación del día de la semana para cualquier fecha se puede realizar con una variedad de algoritmos. Además, los calendarios perpetuos no requieren ningún cálculo por parte del usuario y son esencialmente tablas de búsqueda. Una aplicación típica es calcular el día de la semana en el que nació alguien u ocurrió un evento específico.

Conceptos

En el cálculo numérico, los días de la semana se representan como números de días de la semana. Si el lunes es el primer día de la semana, los días se pueden codificar del 1 al 7, de lunes a domingo, de acuerdo con ISO 8601. El día designado con 7 también se puede contar como 0, aplicando el módulo aritmético 7, que calcula el resto de un número después de la división entre 7. Por lo tanto, el número 7 se trata como 0, 8 como 1, 9 como 2, 18 como 4 y así sucesivamente. Si el domingo se cuenta como día 1, 7 días después (es decir, el día 8) también es domingo, y el día 18 es el mismo que el día 4, que es miércoles, ya que viene tres días después del domingo.[1]

Más información Estándar, lunes ...
Estándar lunes martes miércoles jueves viernes sábado domingo Ejemplos de uso
ISO 8601 1 2 3 4 5 6 7 %_ISODOWI%, %@ISODOWI[]% (4DOS);[2] DAYOFWEEK() (HP Prime)[3]
0 1 2 3 4 5 6
2 3 4 5 6 7 1 %NDAY OF WEEK% (NetWare, DR-DOS[4]); %_DOWI%, %@DOWI[]% (4DOS)[2]
1 2 3 4 5 6 0 Calculadoras financieras HP
Cerrar

El enfoque básico de casi todos los métodos para calcular el día de la semana comienza a partir de una 'fecha de anclaje': un par conocido (como el 1 de enero de 1800 como miércoles), que determina el número de días entre el día conocido y el día que está tratando de determinar, y utilizando módulo aritmético 7 para encontrar un nuevo día numérico de la semana.

Un enfoque estándar es buscar (o calcular, usando una regla conocida) el valor del primer día de la semana de un siglo dado, buscar (o calcular, usando un método de congruencia) un ajuste para el mes, calcular el número de años bisiestos desde el comienzo del siglo, y luego súmelos junto con el número de años desde el comienzo del siglo y el número de día del mes. Eventualmente, uno termina con un recuento de días al que se aplica módulo 7 para determinar el día de la semana de la fecha.[5]

Algunos métodos hacen todas las sumas primero y luego eliminan los sietes, mientras que otros los eliminan en cada paso, como en el método de Lewis Carroll. De cualquier manera es bastante viable: la primera es más fácil para calculadoras y programas de computadora, la segunda para cálculos mentales (es muy posible hacer todos los cálculos en la cabeza con un poco de práctica). Ninguno de los métodos que se proporcionan aquí realiza comprobaciones de rango, por lo que las fechas no razonables producirán resultados erróneos.

Días correspondientes

Cada séptimo día del mes tiene el mismo nombre que el anterior:

Más información Día del mes, d ...
Día del mes d
00 07 14 21 280
01 08 15 22 291
02 09 16 23 302
03 10 17 24 313
04 11 18 254
05 12 19 265
06 13 20 276
Cerrar

Meses correspondientes

Los "meses correspondientes" son aquellos meses dentro del año calendario que comienzan el mismo día de la semana. Por ejemplo, septiembre y diciembre se corresponden, porque el 1 de septiembre cae el mismo día que el 1 de diciembre (ya que hay exactamente trece semanas de 7 días entre las dos fechas). Los meses solo pueden corresponder si el número de días entre sus primeros días es divisible entre 7, o en otras palabras, si sus primeros días están separados por un número entero de semanas. Por ejemplo, febrero de un año común corresponde a marzo porque febrero tiene 28 días, un número divisible entre 7, siendo 28 días exactamente cuatro semanas. En un año bisiesto, enero y febrero corresponden a meses diferentes a los de un año común, ya que agregar el 29 de febrero significa que cada mes subsiguiente comienza un día después.

Enero corresponde a octubre en años comunes y abril y julio en años bisiestos. Febrero corresponde a marzo y noviembre en años comunes y agosto en años bisiestos. Marzo siempre corresponde a noviembre, abril siempre corresponde a julio y septiembre siempre corresponde a diciembre. Agosto no corresponde a ningún otro mes de un año común. Octubre no corresponde a ningún otro mes de un año bisiesto. Mayo y junio nunca corresponden a ningún otro mes.

En la siguiente tabla de meses, los meses correspondientes tienen el mismo número, un hecho que se deriva directamente de la definición:

Más información Años comunes, Años bisiestos ...
Años comunesAños bisiestosm
Ene OctOct0
MayMay1
AgoFeb Ago2
Feb Mar NovMar Nov3
JunJun4
Sep DicSept Dic5
Abr JulEne Abr Jul6
Cerrar

Años correspondientes

Hay siete días posibles en los que puede comenzar un año, y los años bisiestos alterarán el día de la semana después del 29 de febrero. Esto significa que hay 14 configuraciones que puede tener un año. Todas las configuraciones pueden ser referenciadas por una letra dominical, pero como el 29 de febrero no tiene ninguna letra asignada, un año bisiesto tiene dos letras dominicales, una para enero y febrero y la otra (un paso atrás en la secuencia alfabética) de marzo a diciembre.

Por ejemplo, 2023 fue un año común que comenzaba el domingo, lo que indica que el año en su conjunto correspondía al año calendario 2017. Por otro lado, 2024 es un año bisiesto que comienza el lunes y, en su conjunto, corresponde al año calendario 1996; en concreto, sus 2 primeros meses, excepto el 29 de febrero, corresponden a los del año calendario 2018, mientras que, debido al día bisiesto 2024, sus 10 meses posteriores corresponden al año calendario 2019.

Según lo anterior, cada año bisiesto se repite una vez cada 28 años, y cada año común se repite una vez cada 6 años y dos veces cada 11 años. Por ejemplo, la última ocurrencia de un año bisiesto que comienza un domingo fue 2012 y la próxima ocurrencia será 2040. De la misma manera, los próximos años comunes que comienzan el lunes serán 2029, 2035, 2046 y luego 2057. Ambas declaraciones son cierto a menos que se omita un año bisiesto, pero eso no sucederá hasta 2100. En el caso de que un año centenario no sea bisiesto, el próximo año bisiesto ocurrirá 40 años después de cualquier año bisiesto entre 12 y 28 años, inclusive, lejos a partir de ese año del siglo, y cualquier año bisiesto dentro de los 12 años siguientes al año del siglo volverá a ocurrir 12 años después.

Para obtener más detalles, consulte la tabla siguiente:

Más información Año del siglo mod 28, y ...
Año del

siglo mod 28

y
00 06 12 17 230
01 07 12 18 241
02 08 13 19 242
03 08 14 20 253
04 09 15 20 264
04 10 16 21 275
05 11 16 22 006
Cerrar

Notas:

  • Negro significa todos los meses del año común
  • Rojo significa los primeros 2 meses del año bisiesto
  • Azul significa los últimos 10 meses del año bisiesto

Siglos correspondientes

Más información Siglo juliano mod 700, Siglo gregoriano mod 400 ...
Siglo juliano mod 700Siglo gregoriano mod 400[6]Dpia
400: 1100 1800 ...300: 1500 1900 ...Dom
300: 1000 1700 ...Lun
200 0900 1600 ...200: 1800 2200 ...Mar
100 0800 1500 ...Mié
700: 1400 2100 ...100: 1700 2100 ...Jue[7]
600: 1300 2000 ...Vie
500: 1200 1900 ...000: 1600 2000 ...Sáb
Cerrar

"Año 000" es, en cronología normal, el año 1 AC (que precede al 1 DC). En el año astronómico, el año 0 se sitúa entre el 1 a. C. y el 1 d. C. En el calendario juliano proléptico, (es decir, el calendario juliano como habría sido si se hubiera operado correctamente desde el principio), el 1 a. C. comienza el jueves. En el calendario gregoriano proléptico, (llamado así porque no fue ideado hasta 1582), el 1 a. C. comienza el sábado.

Métodos tabulares para calcular el día de la semana

Tabla completa: calendarios juliano y gregoriano

Para las fechas julianas anteriores a 1300 y posteriores a 1999, debe utilizarse el año de la tabla que difiere en un múltiplo exacto de 700 años. Para las fechas gregorianas posteriores a 2299, se debe utilizar el año de la tabla que difiere en un múltiplo exacto de 400 años. Los valores " r0 " a " r6 " indican el resto cuando el valor de las centenas se divide entre 7 y 4 respectivamente, lo que indica cómo se extiende la serie en cualquier dirección. Tanto los valores julianos como los gregorianos se muestran 1500-1999 por conveniencia. Las cifras en negrita (por ejemplo, 04) indican un año bisiesto. Si un año termina en 00 y sus cientos están en negrita, es un año bisiesto. Así, 19 indica que 1900 no es un año bisiesto gregoriano, (pero 19 en la columna juliana indica que es un año bisiesto juliano, al igual que todos los años julianos x 00 años). 20 indica que 2000 es un año bisiesto. Utilice enero y febrero solo en años bisiestos.

Más información Cientos de años, Dígitos del año restante ...
Cientos de añosDígitos del año restanteMesDía de la semana#
Juliano
(r ÷ 7)
Gregoriano
(r ÷ 4)
r5 1916 20 r000 06 17 2328 34 45 5156 62 73 7984 90EneOctSábado0
r4 1815 19 r301 07 12 1829 35 40 4657 63 68 7485 91 96MayDomingo1
r3 17
N/A
02 13 19 2430 41 47 5258 69 75 8086 97FebAgoLunes2
r2 1618 22 r203 08 14 2531 36 42 5359 64 70 8187 92 98FebMarNovMartes3
r1 15
N/A
09 15 20 26 37 43 48 54 65 71 76 82 93 99JunMiércoles4
r0 1417 21 r104 10 21 2732 38 49 5560 66 77 8388 94SepDecJueves5
r6 13
N/A
05 11 16 2233 39 44 5061 67 72 7889 95EneAbrJulViernes6
Cerrar

Para determinar el día de la semana (1 de enero de 2000, sábado)

  • el día del mes: 1 ~ 31 (1)
  • el mes: (6)
  • el año: (0)
  • siglo mod 4 del calendario gregoriano y mod 7 para el calendario juliano (0).
  • sumar 1+6+0+0=7. Dividir entre 7 deja un residuo de 0, por lo que el día de la semana es sábado.

La fórmula es w = (d + m + y + c) mod 7.

Calendario juliano revisado

Téngase en cuenta que la fecha (y, por lo tanto, el día de la semana) en los calendarios juliano y gregoriano revisados es la misma desde el 14 de octubre de 1923 hasta el 28 de febrero de 2800 d. C. inclusive y que para años grandes es posible restar 6300 o un múltiplo del mismo antes. comenzando para llegar a un año que esté dentro o más cerca de la mesa.

Para buscar el día de la semana de cualquier fecha de cualquier año usando la tabla, reste 100 del año, divida la diferencia entre 100, multiplique el cociente resultante (omitiendo las fracciones) por siete y divida el producto entre nueve. Tenga en cuenta el cociente (omitiendo fracciones). Ingrese la tabla con el año juliano, y justo antes de la división final sume 50 y reste el cociente anotado arriba.

Ejemplo: ¿Cuál es el día de la semana del 27 de enero de 8315?

8315-6300 = 2015, 2015-100 = 1915, 1915/100 = 19 resto 15, 19x7 = 133, 133/9 = 14 resto 7. 2015 es 700 años antes que 1315, por lo que se usa 1315. De la tabla: para cientos (13): 6. Para los dígitos restantes (15): 4. Para el mes (enero): 0. Para la fecha (27): 27. 6 + 4 + 0 + 27 + 50-14 = 73. 73/7 = 10 restante 3. Día de la semana = martes.

Dominical Letter

Para encontrar la letra dominical, calcule el día de la semana para el 1 de enero o el 1 de octubre. Si es domingo, la letra dominical es A, si es sábado B, e igualmente hacia atrás a lo largo de la semana y hacia adelante a través del alfabeto hasta el lunes, que es G

Los años bisiestos tienen dos letras dominicales, por lo que para enero y febrero calcule el día de la semana para el 1 de enero y para marzo a diciembre calcule el día de la semana para el 1 de octubre.

Los años bisiestos son todos los años que se dividen exactamente entre cuatro con las siguientes excepciones:

En el calendario gregoriano, todos los años que se dividen exactamente entre 100 (excepto los que se dividen exactamente entre 400).

En el calendario juliano revisado, todos los años que se dividen exactamente entre 100 (excepto los que dan un resto 200 o 600 cuando se dividen entre 900).

El "día del juicio final"

Este es un artefacto de las matemáticas recreativas. Consulte la regla del fin del mundo para obtener una explicación.

Verificar el resultado

Utilice esta tabla para encontrar el día de la semana sin ningún cálculo.

Más información Índice, Lun A ...
ÍndiceLun
A
Mar
B
Mié
C
Jue
D
Vie
E
Sáb
F
Dom
G
Calendario gregoriano y juliano perpetuo

Utilice enero y febrero para los años bisiestos

Fecha de la letra en la fila del año para la letra de la fila del siglo

Todos los días C son días del juicio final

Siglo julianoSiglo gregorianoFecha 01
08
15
22
29
02
09
16
23
30
03
10
17
24
31
04
11
18
25

05
12
19
26

06
13
20
27

07
14
21
28

12 1916 20AbrJulEneGABCDEF010712182935404657636874859196
13 20SepDicFGABCDE0213192430414752586975808697
14 2117 21JunEFGABCD030814253136425359647081879298
15 22FebMarNovDEFGABC0915202637434854657176829399
16 2318 22AgoFebCDEFGAB0410212732384955606677838894
17 24MayBCDEFGA0511162233394450616772788995
18 2519 23EneOctABCDEFG0617232834455156627379849000
[Año/100]Siglo gregoriano 20
16
21
17
22
18
23
19
Año mod 100
Siglo juliano 19
12
20
13
21
14
22
15
23
16
24
17
25
18
Cerrar

Ejemplos:

  • Por método común:
26 de diciembre de 1893 (Gregoriano)

Diciembre es en la fila F y 26 se encuentra en la columna E, por lo que la carta para la fecha se encuentra en la fila C F y la columna E. 93 (años mod 100) está en la fila D (fila años) y la letra C en la fila años se encuentra en la columna G. 18 ([año / 100] en la columna del siglo gregoriano) está en la fila C (fila del siglo) y la letra en la fila del siglo y la columna G es B, por lo que el día de la semana es el martes.

13 de octubre de 1307 (Juliano)

El 13 de octubre es un día F. La letra F en la fila de años (07) se encuentra en la columna G . La letra en la fila del siglo (13) y la columna G es E, por lo que el día de la semana es el viernes.

Enero 1, 2000 (Gregoriano)

El 1 de enero corresponde a G, G en la fila del año ( 0 0) corresponde a F en la fila del siglo ( 20 ) y F corresponde al sábado.

Una fórmula concisa para el método: "La letra de fecha (G), la letra (G) está en la fila del año (0 0) para la letra (F) en la fila del siglo (20), y para el día, la letra (F) se convierte en día laborable (sábado)".

El método letra dominical

Cada día del año (excepto el 29 de febrero) tiene asignada una letra en la secuencia recurrente ABCDEFG. La serie comienza con A el 1 de enero y continúa hasta A nuevamente el 31 de diciembre. La letra del domingo es la que se opone a todos los domingos del año. Dado que el 29 de febrero no tiene carta, esto significa que la carta dominical de marzo a diciembre está un paso atrás en la secuencia en comparación con la de enero y febrero. La letra para cualquier fecha se encontrará donde la fila que contiene el mes (en negro) a la izquierda del "cuadrado latino" se encuentra con la columna que contiene la fecha sobre el "cuadrado latino". La letra del domingo se encontrará donde la columna que contiene el siglo (debajo del "cuadrado latino") se encuentra con la fila que contiene los dos últimos dígitos del año a la derecha del "cuadrado latino".

Entonces, por ejemplo, para encontrar el día de la semana del 16 de junio de 2020:

La columna "20" se encuentra con la fila "20" en "D". La fila "junio" se encuentra con la columna "16" en "F". Como F es dos letras desde D, el día de la semana es dos días desde el domingo, es decir, martes.

Algoritmos matemáticos

Algoritmo de Gauss

En una nota escrita a mano en una colección de tablas astronómicas, Carl Friedrich Gauss describió un método para calcular el día de la semana del 1 de enero de un año determinado. Nunca lo publicó. Finalmente se incluyó en sus obras completas en 1927.[8]

El método de Gauss fue aplicable al calendario gregoriano. Numeró los días de la semana del 0 al 6 comenzando con el domingo. Definió la siguiente operación: El día laborable del 1 de enero del año número A es[9]

o

del cual se puede derivar un método para el calendario juliano

o

dónde es el resto después de la división de y entre m,[8] o y módulo m , y Y + 100 C = A.

Para el año 2000, A - 1 = 1999, Y - 1 = 99 y C = 19, el día de la semana del 1 de enero es

El día de la semana del último día del año número A - 1 o 0 de enero del año número A es

El día de la semana de 0 (un año común) o 1 (un año bisiesto) de enero en el año número A es

Para determinar el día de la semana de una fecha arbitraria, usaremos la siguiente tabla de búsqueda.

Más información ...
Meses 11
Ene
12
Feb
1
Mar
2
Abr
3
May
4
Jun
5
Jul
6
Ago
7
Sep
8
Oct
9
Nov
10
Dec
M
años comunes 033614625035m
años bisiestos 4025036146
Algoritmo
Cerrar

Nota: menos 1 si M es 11 o 12 y más 1 si M es menor de 11 en un año bisiesto.

El día de la semana para cualquier día del año número A es

o

donde D es el día del mes y A - 1 para enero o febrero.

Los días de semana para el 30 de abril de 1777 y el 23 de febrero de 1855 son

y

Esta fórmula también fue convertida en métodos gráficos y tabulares para calcular cualquier día de la semana por Kraitchik y Schwerdtfeger.[8][10]

Variación desigual

Otra variación del algoritmo anterior también funciona sin tablas de búsqueda. Una pequeña desventaja es la inusual convención de conteo de meses y años. La formula es

dónde

  • Y es el año menos 1 para enero o febrero y el año para cualquier otro mes
  • y son los 2 últimos dígitos de Y
  • c son los primeros 2 dígitos de Y
  • d es el día del mes (1 a 31)
  • m es el mes cambiado (marzo = 1, ..., febrero = 12)
  • w es el día de la semana (0 = domingo, ..., 6 = sábado). Si w es negativo, se debe sumar 7.

Por ejemplo, 1 de enero de 2000 (año - 1 de enero)


Nota: El primero es solo para un año bisiesto 00 y el segundo es para cualquier año 00.

El término da los valores de meses: m

Más información Mes, m ...
Mesm
enero0
febrero3
marzo2
abril5
mayo0
junio3
julio5
agosto1
septiembre4
octubre6
noviembre2
diciembre4
Cerrar

El término da los valores de años: y

Más información y mod 28, y ...
y mod 28y
01 07 12 18 --1
02-13 19 242
03 08 14-253
-- 09 15 20 264
04 10-21 275
05 11 16 22 --6
06-17 23 000
Cerrar

El término da los valores de los siglos: c

Más información mod 4 ...
c mod 4c
15
23
31
00
Cerrar

Ahora de la fórmula general: ; El 1 de enero de 2000 se puede volver a calcular de la siguiente manera:

Algoritmo de Zeller

En el algoritmo de Zeller, los meses están numerados del 3 de marzo al 14 de febrero. Se supone que el año comienza en marzo; esto significa, por ejemplo, que enero de 1995 se tratará como el mes 13 de 1994.[11] La fórmula para el calendario gregoriano es

dónde

  • Y es el año menos 1 para enero o febrero y el año para cualquier otro mes
  • y son los 2 últimos dígitos de Y
  • c son los primeros 2 dígitos de Y
  • d es el día del mes (1 a 31)
  • m es el mes cambiado (marzo = 3, ... enero = 13, febrero = 14)
  • w es el día de la semana (1 = domingo, .. 0 = sábado)

La única diferencia es una entre el algoritmo de Zeller (Z) y el algoritmo de Gauss (G), es decir, Z - G = 1 = Domingo.

(Marzo = 3 en Z pero marzo = 1 en G)

Entonces podemos obtener los valores de los meses a partir de los del algoritmo gaussiano agregando uno:

Más información Mes, m ...
Mesm
enero1
febrero4
marzo3
abril6
mayo1
junio4
julio6
agosto2
septiembre5
octubre0
noviembre3
diciembre5
Cerrar

Algoritmo de Wang

El algoritmo de Wang[12] para el calendario gregoriano es (la fórmula debe restarse de 1 si m es 1 o 2 y el año es bisiesto)

dónde

  • es el último dígito del año
  • es el último segundo dígito del año
  • son los 2 primeros dígitos del año
  • es el día del mes (1 a 31)
  • es el mes (enero = 1, ... diciembre = 12)
  • es el día de la semana (0 = domingo, .. 6 = sábado)
  • es la función de días nulos con los valores enumerados en la siguiente tabla
Más información ...
m
11Un día
35m + 2
57
79
93m + 1
1112
212m + 3
42m - 2
64
86
108
1210
Cerrar

Se puede derivar un algoritmo para el calendario juliano del algoritmo anterior

donde es un día del juicio.

Más información ...
m
13C día
37m + 4
59
711
95m - 4
117
20m - 2
44m
66
88
1010
1212
Cerrar

Otros algoritmos

Método de Schwerdtfeger

En un método parcialmente tabular de Schwerdtfeger, el año se divide en el siglo y el año de dos dígitos dentro del siglo. El enfoque depende del mes. Para m 3,

entonces g está entre 0 y 99. Para m = 1,2 ,

La fórmula para el día de la semana es[8]

donde se elige el módulo positivo.[8]

El valor de e se obtiene de la siguiente tabla:

m123456789101112
e032503514624

El valor de f se obtiene de la siguiente tabla, que depende del calendario. Para el calendario gregoriano,[8]

Más información f ...
c mod 40123
f0531
Cerrar

Para el calendario juliano,[8]

Más información f ...
c mod 70123456
f5432106
Cerrar

Método de Lewis Carroll

Charles Lutwidge Dodgson (Lewis Carroll) ideó un método que se asemeja a un rompecabezas, pero en parte tabular al usar los mismos números de índice para los meses que en la "Tabla completa: calendarios juliano y gregoriano" anterior. Enumera los mismos tres ajustes para los primeros tres meses de los años no bisiestos, uno más alto para el último, y da instrucciones crípticas para encontrar el resto; Sus ajustes por siglos se determinarán utilizando fórmulas similares a las de la tabla de siglos. Aunque explícito al afirmar que su método también funciona para fechas de estilo antiguo, su ejemplo se reproduce a continuación para determinar que "1676, 23 de febrero" es un miércoles, solo funciona en un calendario juliano que comienza el año el 1 de enero, en lugar del 25 de marzo como el "estilo antiguo".

Algoritmo:[13]

Tome la fecha indicada en 4 porciones, a saber. el número de siglos, el número de años transcurridos, el mes, el día del mes.

Calcule los siguientes 4 elementos, agregando cada uno, cuando lo encuentre, al total de los elementos anteriores. Cuando un artículo o un total exceda de 7, divida entre 7 y conserve el resto únicamente.

Ítem del siglo: Para ' Estilo antiguo ' (que terminó el 2 de septiembre de 1752) reste de 18. Para ' Estilo nuevo ' (que comenzó el 14 de septiembre de 1752) divida entre 4, tome más de 3, multiplique el resto por 2.

Ítem del año: Sume el número de docenas, el excedente y el número de 4 en el excedente.

Ítem del mes: si comienza o termina con una vocal, reste el número, indicando su lugar en el año, de 10. Esto, más el número de días, da el elemento del mes siguiente. El artículo de enero es "0"; para febrero o marzo, "3"; para diciembre, "12".

Ítem del día: El total así alcanzado debe corregirse, deduciendo "1" (primero sumando 7, si el total es "0"), si la fecha es enero o febrero en un año bisiesto, recordando que cada año, divisible entre 4, es un año bisiesto, excepto sólo los años-siglo, en "Nuevo estilo", cuando el número de siglos no es tan divisible (por ejemplo, 1800).

El resultado final da el día de la semana, "0" significa domingo, "1" lunes, y así sucesivamente.

Ejemplos:[13]

1783, 18 de septiembre

17, dividido entre 4, deja "1" encima; 1 de 3 da "2"; dos veces 2 es "4". 83 son 6 docenas y 11, dando 17; más 2 da 19, es decir (dividiendo entre 7) "5". Total 9, es decir, "2" El elemento de agosto es "8 de 10", es decir, "2"; entonces, para septiembre, es "2 más 31", es decir, "5" Total 7, es decir, "0", que se apaga. 18 da "4". Respuesta, "jueves".

1676, 23 de febrero

16 de 18 da "2" 76 son 6 docenas y 4, dando 10; más 1 da 11, es decir, "4". Total "6" El artículo de febrero es "3". Total 9, es decir, "2" 23 da "2". La corrección total "4" para el año bisiesto da "3". Respuesta, "miércoles".

Dado que el 23 de febrero de 1676 (contando febrero como el segundo mes) es, para Carroll, el mismo día que el gregoriano 4 de marzo de 1676, no llega a la respuesta correcta, a saber, "viernes", para una fecha de estilo antiguo que figura en el calendario gregoriano. es el mismo día que el 5 de marzo de 1677. Si hubiera asumido correctamente que el año comenzaría el 25 de marzo, su método habría tenido en cuenta los números de años diferentes, al igual que el cumpleaños de George Washington, entre los dos calendarios.

Es de destacar que aquellos que han vuelto a publicar el método de Carroll no han señalado su error, sobre todo Martin Gardner.[14]

En 1752, el Imperio Británico abandonó el uso del calendario juliano de estilo antiguo al adoptar el calendario gregoriano, que se ha convertido en el estándar actual en la mayoría de los países del mundo.

Métodos dependientes de la implementación

En las expresiones de abajo en lenguaje C, y , m y d son, respectivamente, número entero variables que representan el año (por ejemplo, 1988), meses (1-12) y el día del mes (1-31).

        (d+=m<3?y--:y-2,23*m/9+d+4+y/4-y/100+y/400)%7  

En 1990, Michael Keith y Tom Craver publicaron la expresión anterior que busca minimizar el número de pulsaciones de teclas necesarias para ingresar a una función autónoma para convertir una fecha gregoriana en un día numérico de la semana.[15] No conserva ni y ni d , y devuelve 0 = domingo, 1 = lunes, etc.

Poco después, Hans Lachman simplificó su algoritmo para facilitar su uso en dispositivos de gama baja. Tal como se diseñó originalmente para calculadoras de cuatro funciones, su método necesita menos entradas de teclado al limitar su rango a 1905-2099 d. C. o fechas julianas históricas. Posteriormente se modificó para convertir cualquier fecha gregoriana, incluso en un ábaco. En los dispositivos basados en Motorola 68000 hay igualmente menos necesidad de registros de procesador o códigos de operación, según el objetivo de diseño previsto.[16]

Métodos de Sakamoto

El precursor tabular para el algoritmo de Tøndering se materializa en la siguiente K & R C función.[17] Con cambios menores, fue adaptado para otros lenguajes de programación de alto nivel como APL2.[18] Publicado por Tomohiko Sakamoto en el grupo de noticias de Usenet comp.lang.c en 1992, es exacto para cualquier fecha gregoriana.[19][20]

    dayofweek(y, m, d)	/* 1 <= m <= 12,  y > 1752 (in the U.K.) */
    {
        static int t[] = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4};
        if( m < 3 )
        {
          y -= 1;
        }
        return (y + y/4 - y/100 + y/400 + t[m-1] + d) % 7;
    }

La función no siempre conserva y , y devuelve 0 = domingo, 1 = lunes, etc. Por el contrario, la siguiente expresión

    dow(m,d,y) { y-=m<3; return(y+y/4-y/100+y/400+"-bed=pen+mad."[m]+d)%7; }

publicado simultáneamente por Sakamoto no es fácilmente adaptable a otros idiomas, e incluso puede fallar si se compila en una computadora que codifica caracteres utilizando valores distintos de estándar ASCII (por ejemplo, EBCDIC), o en compiladores C que hacen cumplir el cumplimiento de ANSI C (incluso en código que sigue siendo compatible con la especificación K&R C original , donde se supone que las declaraciones de tipo omitidas son números enteros). Solo para esta última consideración, la versión más detallada de Sakamoto podría considerarse no portátil, al igual que la de Keith y Craver.

Rata Die

El método Rata Die de IBM's requiere que uno sepa el "día clave" del calendario gregoriano proléptico, es decir, el día de la semana del 1 de enero del 1 d. C. (su primera fecha). Esto debe hacerse para establecer el número restante en función del cual se determina el día de la semana para la última parte del análisis. Mediante el uso de un día dio a 13 de agosto de, 2009, que era un jueves como referencia, con Base y n es el número de días y semanas que ha sido desde 01/01/0001 al día dado, respectivamente, y k el día en el dado semana que debe ser inferior a 7, la base se expresa como

                      Base = 7n + k       (i)

Sabiendo que un año divisible entre 4 o 400 es un año bisiesto, mientras que un año divisible entre 100 y no 400 no es un año bisiesto, se puede escribir un programa de software para encontrar el número de días. La siguiente es una traducción a C del método de IBM para su lenguaje de programación REXX:

int daystotal (int y, int m, int d)
{
	static char daytab[2][13] =
	{
		{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
		{0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
	};
	int daystotal = d;
	for (int year = 1 ; year <= y ; year++)
	{
		int max_month = ( year < y ? 12 : m-1 );
		int leap = (year%4 == 0);
		if (year%100 == 0 && year%400 != 0)
			leap = 0;
		for (int month = 1 ; month <= max_month ; month++)
		{
			daystotal += daytab[leap][month];
		}
	}
	return daystotal;
}

Se encuentra que daystotal es 733632 a partir de la fecha base del 1 de enero de AD 1. Este número total de días se puede verificar con un cálculo simple: Ya hay 2008 años completos desde el 01/01/0001. El número total de días en 2008 años sin contar los días bisiestos es 365 * 2008 = 732920 días. Suponga que todos los años divisibles entre 4 son años bisiestos. Sume 2008/4 = 502 al total; luego reste los 15 días bisiestos porque los años que son exactamente divisibles entre 100 pero no 400 no son bisiestos. Continúe agregando al nuevo total el número de días en los primeros siete meses de 2009 que ya han pasado, que son 31 + 28 + 31 + 30 + 31 + 30 + 31 = 212 días y los 13 días de agosto para obtener Base = 732920 + 502 - 20 + 5 + 212 + 13 = 733632.

Lo que esto significa es que han pasado 733632 días desde la fecha base. Sustituya el valor de Base en la ecuación anterior (i) para obtener 733632 = 7 * 104804 + 4, n = 104804 yk = 4, lo que implica que el 13 de agosto de 2009 es el cuarto día de la semana 104805 desde el 01/01/0001 . El 13 de agosto de 2009 es jueves; por lo tanto, el primer día de la semana debe ser el lunes, y se concluye que el primer día 01/01/0001 del calendario es el lunes . Con base en esto, el resto de la relación Base / 7 , definida anteriormente como k , decide qué día de la semana es. Si k = 0, es lunes, k = 1, es martes, etc.[21]

Véase también

Referencias

Enlaces externos

Related Articles

Timelines

Top Qs

Fact Checks