Determinación del día de la semana.

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
Métodos para calcular el día de la semana

La determinación del día de la semana para cualquier fecha se puede realizar con diversos 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 o 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 laborables. Si el lunes es el primer día de la semana, los días pueden codificarse del 1 al 7, de lunes a domingo, como se practica en ISO 8601. El día designado con 7 también puede contarse como 0, aplicando el módulo aritmético 7, que calcula el resto de un número después de dividirlo por 7. Así, el número 7 se trata como 0, el número 8 como 1, el número 9 como 2, el número 18 como 4, y así sucesivamente.. Si el domingo se cuenta como día 1, entonces 7 días después (es decir, 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 cae tres días después del domingo (es decir, 18 mod 7 = 4).

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); DAYOFWEEK() (HP Prime)
0 1 2 3 4 5 6
2 3 4 5 6 7 1 DÍA DE BIENESTAR (NetWare, DR-DOS); %_DOWI%, %@DOWI[]% (4DOS)
1 2 3 4 5 6 0 Calculadoras financieras HP

El enfoque básico de casi todos los métodos para calcular el día de la semana comienza partiendo de una "fecha ancla": un par conocido (como el 1 de enero de 1800 como miércoles), determinando el número de días entre el día conocido y el día que está tratando de determinar, y usando el 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 determinado, buscar (o calcular, usando un método de congruencia) un ajuste para el mes, calcule 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. Finalmente, se termina con un recuento de días al que se aplica el módulo 7 para determinar el día de la semana de la fecha.

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. Cualquiera de las dos formas es bastante viable: la primera es más fácil para calculadoras y programas de ordenador, la segunda para el cálculo mental (es muy posible hacer todos los cálculos mentalmente con un poco de práctica). Ninguno de los métodos proporcionados 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 de un mes tiene el mismo nombre que el anterior:

Día
el mes
d
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

Meses correspondientes

"Meses correspondientes" Son aquellos meses del año calendario que comienzan el mismo día de la semana. Por ejemplo, septiembre y diciembre 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 sólo pueden corresponder si el número de días entre sus primeros días es divisible por 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 por 7, 28 días son 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 posterior 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 tabla de meses siguiente, los meses correspondientes tienen el mismo número, un hecho que se deriva directamente de la definición.

Años comunesAños transcurridosTodos los añosm
JanOct0
Mayo1
FebAug2
FebMar3
Jun4
Sept Dec5
JanAbril de julio6

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 quiere decir que son 14 configuraciones las que puede tener un año. Se puede hacer referencia a todas las configuraciones mediante 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) para marzo a Diciembre.

2021 es un año común que comienza el viernes, lo que significa que corresponde al año calendario 2010. Los dos primeros meses de 2021 corresponden a los dos primeros meses de 2016. 2022 es un año común que comienza en sábado, lo que significa que corresponde al año calendario 2011. Los últimos diez meses de 2022 corresponden a los últimos diez meses de 2016. 2023 es un año común que comienza en domingo, lo que significa que corresponde al año calendario 2017. 2024 es un año bisiesto que comienza el lunes, lo que significa que corresponde al año calendario 1996. Los dos primeros meses de 2024 corresponden a los dos primeros meses de 2018. Los últimos diez meses de 2024 corresponden a los últimos diez meses de 2019.

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 aparición de un año bisiesto que comenzó el miércoles fue 2020 y la próxima aparición será 2048. Del mismo modo, los próximos años comunes que comenzarán el viernes serán 2027, 2038 y luego 2049. Ambas afirmaciones son verdaderas a menos que Se salta el año bisiesto, pero eso no sucederá hasta el año 2100.

Para obtener más información, consulte la siguiente tabla.

Año del
siglo mod 28
Sí.
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

Notas:

  • Negro significa todos los meses del Año Común
  • Rojo significa los primeros 2 meses del Año del Salto
  • Azul significa los últimos 10 meses del Año del Salto

Siglos correspondientes

Siglo Juliano
mod 700
Siglo gregoriano
Mod 400
Día
400: 1100 1800...300: 1500 1900...Sol
300: 1000 1700...Mon
200 0900 1600...200: 1800 2200...Tue
100 0800 1500...Wed
700: 1400 2100...100: 1700 2100...Thu
600: 1300 2000...Fri
500: 1200 1900...000: 1600 2000...Sat

"Año 000" es, en cronología normal, el año 1 a.C. (que precede al 1 d.C.). En la numeración de años astronómicos, 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 tal como habría sido si hubiera funcionado correctamente desde el principio), el 1 a.C. comienza el jueves. En el proléptico calendario gregoriano (llamado así porque no se ideó hasta 1582), el año 1 a.C. comienza en 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, se debe utilizar el año de la tabla que difiere en un múltiplo exacto de 700 años. Para 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 través de "r6" indique el resto cuando el valor de las centenas se divide por 7 y 4 respectivamente, indicando cómo la serie se extiende en cualquier dirección. Tanto el valor juliano como el gregoriano se muestran entre 1500 y 1999 por conveniencia. Las cifras en negrita (p. ej., 04) indican el año bisiesto. Si un año termina en 00 y sus centenas están en negrita es 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, como lo son todos los x julianos). 00 años). 20 indica que 2000 es un año bisiesto. Utilice enero y febrero solo en años bisiestos.

Cientos de añosAño restante dígitosMesD
o
W
#
Julian
(r ÷ 7)
Gregorian
(r. 4)
r5 1916 20 r000 06 17 2328 34 45 5156 62 73 7984 90JanOctSa0
r4 1815 19 r301 07 12 1829 35 40 4657 63 68 7485 91 96MayoSu1
r3 17
N/A
02 13 19 2430 41 47 5258 69 75 8086 97FebAugM2
r2 1618 22 r203 08 14 2531 36 42 5359 64 70 8187 92 98FebMarNovTu3
r1 15
N/A
09 15 20 2637 43 48 5465 71 76 8293 99JunW4
r0 1417 21 r104 10 21 2732 38 49 5560 66 77 8388 94SepDecTh5
r6 13
N/A
05 11 16 2233 39 44 5061 72 7889JanAprJulF6

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)
  • el mod 4 del siglo para el calendario Gregoriano y el mod 7 para el calendario Juliano (0).
  • añadir 1+6+0+0=7. Dividir por 7 deja un resto 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

Tenga 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 del año 2800 d. C. inclusive y que para años grandes es posible restar 6300 o un múltiplo del mismo antes de comenzar para llegar a un año que esté dentro o más cerca de la tabla.

Para buscar el día de la semana de cualquier fecha para cualquier año usando la tabla, resta 100 del año, divide la diferencia por 100, multiplica el cociente resultante (omitiendo fracciones) por siete y divide el producto por nueve. Anota el cociente (omitiendo fracciones). Ingresa la tabla con el año juliano, y justo antes de la división final suma 50 y resta 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, 19×7=133, 133/9=14 resto 7. 2015 está 700 años por delante de 1315, por lo que se utiliza 1315. De la tabla: para centenas (13): 6. Para dígitos restantes (15): 4. Para mes (enero): 0. Para fecha (27): 27. 6 + 4 + 0 + 27 + 50 − 14 = 73. 73/7=10 resto 3. Día de la semana = martes.

Carta Dominical

Para encontrar la Carta 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, y de manera similar 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 por cuatro con las siguientes excepciones:

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

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

Did you mean:

The "doomsday#34;

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

Comprueba el resultado

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

ÍndiceMon
A
Tue
B
Wed
C
Thu
D
Fri
E
Sat
F
Sol
G
Perpetual Gregorian y Julian calendario
Uso Jan y Feb para años
Carta de fecha en la fila del año para la letra en la fila del siglo

Todos los días de la C son domingos

Julian
siglo
Gregorian
siglo
Fecha 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 20AprJulJanGABCDEF010712182935404657636874859196
13SepDecFGABCDE0213192430414752586975808697
14 2117 21JunEFGABCD030814253136425359647081879298
15 22FebMarNovDEFGABC0915202637434854657176829399
16 2318 22AugFebCDEFGAB0410212732384955606677838894
17 24MayoBCDEFGA0511162233394450616772788995
18 2519 23JanOctABCDEFG0617232834455156627379849000
[Año/100]Gregorian
siglo
20
16
21
17
22
18
23
19
Año mod 100
Julian
siglo
19
12
20
13
21
14
22
15
23
16
24
17
25
18

Ejemplos:

  • Para el método común
26 de diciembre de 1893 (GD)

Diciembre está en la fila F y 26 está en la columna E, por lo que la letra del la fecha es C ubicada en la fila F y la columna E. 93 (año mod 100) está en la fila D (fila del año) y la letra C en la fila del año está ubicada 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 y columna del siglo G es B, por lo que el día de la semana es el martes.

13 de octubre de 1307 (JD)

El 13 de octubre es un día F. La letra F en la fila del año (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 viernes.

1o de enero de 2000 (GD)

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

Una fórmula concisa para el método: "Fecha de la letra (G), la letra (G) está en la fila del año (00) 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 de la Carta 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 dominical es la que contrasta con todos los domingos del año. Dado que el 29 de febrero no tiene letra, 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 de cualquier fecha se encontrará donde se encuentra la fila que contiene el mes (en negro) a la izquierda del "cuadrado latino" coincide con la columna que contiene la fecha encima del "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" 34;. Para un año bisiesto, la letra dominical así encontrada es la que se aplica de marzo a diciembre.

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

Columna "20" cumple con la fila "20" en "D". Fila "junio" cumple con la columna "16" en "F". Como F está dos letras después de D, el día de la semana es dos días después del domingo, es decir, el martes.

Algoritmos matemáticos

Rata muere

El método trivial Rata Die funciona sumando el número de días d que han pasado desde una fecha conocida de la semana D. El día de la semana viene dado por (D + d) mod 7, conforme a cualquier convención utilizado para codificar D.

Este método es más caro de lo necesario y no es práctico para el cálculo humano. IBM ha utilizado un método Rata Die en su lenguaje de programación REXX, utilizando la fecha base conocida del 1 de enero del 1 d.C., un lunes.

Por ejemplo, la fecha del 13 de agosto de 2009 es 733632 días desde el 1 de enero dC. Tomando el número mod 7 se obtiene 4, por lo tanto, un jueves.

Did you mean:

Gauss 's algorithm

Carl Friedrich Gauss describió un método para calcular el día de la semana del 1 de enero de cualquier año en una nota escrita a mano en una colección de tablas astronómicas. Nunca lo publicó. Finalmente se incluyó en sus obras completas en 1927. En comparación con Rata Die, el resultado ayuda a simplificar el recuento de años.

Did you mean:

Gauss ' method was applicable to the Gregorian calendar. He numbered the weekdays from 0 to 6 starting with Sunday. He defined the following operation.

Inputs
Año A, número de mes M, número de día D.
Producto
Día del año.
Procedimiento
  1. Primero determinar el día de la semana d1 del 1° de enero.
    • Para un calendario gregoriano, el día de semana es
      ()1+5()()A− − 1)% % 4)+4()()A− − 1)% % 100)+6()()A− − 1)% % 400))% % 7.{displaystyle (1+5(A-1)%4)+4((A-1)%100)+6(A-1)%400)%7.}
      Alternativamente, conjunto C = A 100, Y = A% 100, y el valor es
      ()1+5()()Y− − 1)% % 4)+3()Y− − 1)+5()C% % 4))% % 7.{displaystyle (1+5(Y-1)%4)+3(Y-1)+5(C%4))%7.}
    • Para un calendario Juliano, el día de semana es
      ()6+5()()A− − 1)% % 4)+3()A− − 1))% % 7{displaystyle (6+5(A-1)%4)+3(A-1)%7}
      o
      ()6+5()()Y− − 1)% % 4)+3()Y− − 1)+6C)% % 7{displaystyle (6+5(Y-1)%4)+3(Y-1)+6C)%7}
      .
  2. Ahora determinar el offset relacionado con el mes m utilizando la mesa de búsqueda con M.
  3. Regreso d =d1 + m + D) % 7.
Cuadro de compensaciones mensuales
Meses JanFebMarAprMayoJunJulAugSepOctNovDec
Años comunes 033614625035
Años transcurridos 4025036146

El procedimiento anterior se puede condensar en una sola expresión para el caso gregoriano:

()D+m+5()()A− − 1)% % 4)+4()()A− − 1)% % 100)+6()()A− − 1)% % 400))% % 7{displaystyle (D+m+5(A-1)%4)+4(A-1)%100)+6((A-1)%400)%7}

Ejemplo resuelto

Para el año número 2000, A − 1 = 1999, Y − 1 = 99 y C = 19, el día laborable del 1 de enero es

=()1+5()1999% % 4)+4()1999% % 100)+6()1999% % 400)% % 7=()1+1+4+0)% % 7=6{displaystyle {begin{aligned} limit=(1+5(1999%4)+4(1999%100)+6(1999%400)%7\\fn1+1+4+0)%7\\\\\\\fn1end{aligned}}}}}}}}}
=()1+5()99% % 4)+3× × 99+5()19% % 4)% % 7=()1+1+3+1)% % 7=6=Sábado.{displaystyle {begin{aligned} limit=(1+5(99%4)+3times 99+5(19%4)%7\\\\fn1+1+3+1)%7\\\\\fnMicrosoft Sans Serif}.end{aligned}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}

Los días laborables del 30 de abril de 1777 y del 23 de febrero de 1855 son

=()30+6+5()1776% % 4)+4()1776% % 100)+6()1776% % 400)% % 7=()2+6+0+3+6)% % 7=3=Miércoles{displaystyle {begin{aligned} limit=(30+6+5(1776%4)+4(1776%100)+6(1776%400)%7\\%7+6+0+3+6)%7\\=3={text{Wednesday}}end{aligned}}}}}}}}
=()6+23+⌈2.6× × 12⌉+5()1854% % 4)+4()1854% % 100)+6()1854% % 400)% % 7=()6+2+4+3+6+5)% % 7=5=Viernes.{displaystyle {begin{aligned} limit=(6+23+leftlceil 2.6times 12rightrceil +5(1854%4)+4(1854%100)+6(1854%400)%7\\cH00=(6+4+3+5+5)%7\\\\\\\\cH009\\\\cH009\\\\\cH009\\\cH009\\\\\\cH009\\\\\\\\\\\\\cH004\\\\\cH004\cH004\\cH004\\\\cH004cH004\cH004\\\\

Explicación y notas

El algoritmo para el día de la semana del 1 de enero se puede probar utilizando aritmética de módulo. El punto principal es que debido a que 365 % 7 = 1, cada año agrega 1 día a la progresión. El resto es ajuste para año bisiesto. Las versiones basadas en siglos tienen 36525 % 7 = 6.

La tabla de compensaciones mensuales muestra una divergencia en febrero debido al año bisiesto. Una técnica común (utilizada más tarde por Zeller) es cambiar el mes para que comience en marzo, de modo que el día bisiesto esté al final del conteo. Además, como demostró más tarde Zeller, la tabla se puede sustituir por una expresión aritmética.

Kraitchik y Schwerdtfeger también convirtieron esta fórmula en métodos gráficos y tabulares para calcular cualquier día de la semana.

Variación dispar

La siguiente fórmula es un ejemplo de una versión sin una tabla de búsqueda. Se supone que el año comienza en marzo, lo que significa que las fechas de enero y febrero deben considerarse parte del año anterior. La fórmula del calendario gregoriano es

w=()d+⌊ ⌊ 2.6m− − 0.2⌋ ⌋ +Sí.+⌊Sí.4⌋+⌊c4⌋− − 2c)% % 7,{displaystyle w=left(d+lfloor 2.6m-0.2rfloor +y+leftlfloor {frac {y}{4}rightrfloor +leftlfloor {frac {c}{4}rightrfloor -2cright)%7,}

dónde

  • d{displaystyle d} es el día del mes (1 a 31)
  • m{displaystyle m} es el mes pasado (marzo = 1,..., febrero = 12)
  • Y{displaystyle Sí. es el año a menos que m{displaystyle m} es 11 = enero o 12 = febrero que se consideran parte del año anterior, dando Y=año− − 1{displaystyle Y={textit {year}-1}
  • c{displaystyle c} es el siglo dado por c=⌊ ⌊ Y/100⌋ ⌋ {displaystyle c=lfloor Y/100rfloor
  • Sí.{displaystyle y} es el año relativo al siglo, dado por Sí.=Y− − 100c{displaystyle y=Y-100c}, o simplemente los últimos 2 dígitos de Y{displaystyle Sí.
  • w{displaystyle w} es el día de la semana (0 = domingo,...,6 = sábado)
Cuadro de compensaciones mensuales (⌊ ⌊ 2.6m− − 0.2⌋ ⌋ {displaystyle lfloor 2.6m-0.2rfloor })
Meses MarAprMayoJunJulAugSepOctNovDecJanFeb
Offset 257101215182023252831
Did you mean:

Zeller 's algorithm

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

w↑ ↑ ()⌊13()m+1)5⌋+⌊Sí.4⌋+⌊c4⌋+d+Sí.− − 2c)mod7{displaystyle wequiv left(leftlfloor {frac {13(m+1)}{5}rightrfloor +leftlfloor {frac {y}{4}rightrfloor +leftlfloor {frac {c}{4}rightrfloor - Sí.

  • d{displaystyle d} es el día del mes (1 a 31)
  • m{displaystyle m} es el mes turno (Marzo=3,...enero = 13, febrero=14)
  • Y{displaystyle Sí. es el año a menos que m{displaystyle m} 13 = enero o 14 = febrero que se consideran parte del año anterior Y=año− − 1{displaystyle Y={textit {year}-1}
  • c{displaystyle c} es el siglo dado por c=⌊ ⌊ Y/100⌋ ⌋ {displaystyle c=lfloor Y/100rfloor
  • Sí.{displaystyle y} es el año relativo al siglo, dado por Sí.=Y− − 100c{displaystyle y=Y-100c}, o simplemente los últimos 2 dígitos de Y{displaystyle Sí.
  • w{displaystyle w} es el día de la semana (1 = domingo,..0 = sábado)
Cuadro de compensaciones mensuales (⌊ ⌊ 2.6()m+1)⌋ ⌋ {displaystyle lfloor 2.6(m+1)rfloor })
Meses MarAprMayoJunJulAugSepOctNovDecJanFeb
Offset 101315182023262831333639


La única diferencia es entre el algoritmo de Zeller (Z) y el algoritmo gaussiano dispare (G), es decir ZG = 1 = domingo.

()d+⌊ ⌊ ()m+1)2.6⌋ ⌋ +Sí.+⌊ ⌊ Sí./4⌋ ⌋ +⌊ ⌊ c/4⌋ ⌋ − − 2c)mod7− − ()d+⌊ ⌊ 2.6m− − 0.2⌋ ⌋ +Sí.+⌊ ⌊ Sí./4⌋ ⌋ +⌊ ⌊ c/4⌋ ⌋ − − 2c)mod7{displaystyle (d+lfloor (m+1)2.6rfloor +y+lfloor y/4rfloor +lfloor c/4rfloor -2c){bmod {7}-(d+lfloor 2.6m-0.2rfloor +y+lfloor y/4rfloor +lfloor c/4rfloor -2c){bmod {7}}
=()⌊ ⌊ ()m+2+1)2.6− − ()2.6m− − 0.2)⌋ ⌋ )mod7{displaystyle =(lfloor (m+2+1)2.6-(2.6m-0.2)rfloor){bmod {7}} (Marzo = 3 pulg Z pero marzo = 1 G)
=()⌊ ⌊ 2.6m+7.8− − 2.6m+0.2⌋ ⌋ )mod7{displaystyle =(lfloor 2.6m+7.8-2.6m+0.2rfloor){bmod {7}}
=8mod7=1{displaystyle =8{bmod {7}=1}
Did you mean:

Wang 's algorithm

Did you mean:

Wang 's algorithm for human calculation of the Gregorian calendar is (the formula should be subtracted by 1 if m is 1 or 2 if the year is a leap year)

w=()d− − d0()m)+Sí.0− − Sí.1+⌊Sí.0/4− − Sí.1/2⌋− − 2()cmod4))mod7,{displaystyle w=left(d-d_{0}(m)+y_{0}-y_{1}+leftlfloor Y...

  • Sí.0{displaystyle Y... es el último dígito del año (unidades)
  • Sí.1{displaystyle Y... es el segundo último dígito del año (diez)
  • c{displaystyle c} es el siglo, dado por c=⌊ ⌊ año/100⌋ ⌋ {displaystyle c=lfloor {textit {year}/100rfloor }
  • d{displaystyle d} es el día del mes (1 a 31)
  • m{displaystyle m} es el mes (enero=1,..., diciembre=12)
  • w{displaystyle w} es el día de la semana (0=Sunday,...,6=Sábado)
  • d0()m){displaystyle d_{0}(m)} es la función null-days (mes offset) con valores enumerados en el cuadro siguiente
md0()m){displaystyle d_{0}(m)}
11Un día
35m + 2
57
79
93m + 1
1112
212m + 3
42m − 2
64
86
108
1210

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

w=()d− − d0()m)+Sí.0− − Sí.1+⌊Sí.0/4− − Sí.1/2⌋− − c)mod7,{displaystyle w=left(d-d_{0}(m)+y_{0}-y_{1}+leftlfloor Y_{0}/4-y_{1}/2rightrfloor -cright){bmod {7}}
d0()m){displaystyle d_{0}(m)}

md0()m){displaystyle d_{0}(m)}
13Día C
37m + 4
59
711
95m − 4
117
20m − 2
44m
66
88
1010
1212

Otros algoritmos

Did you mean:

Schwerdtfeger 's method

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,

c=⌊Sí.100⌋yg=Sí.− − 100c,{displaystyle c=leftlfloor {frac}rightrfloor {text{y}quad g=y-100c,}
Did you mean:

so x is between 0 and 99. For m = 1,2,

c=⌊Sí.− − 1100⌋yg=Sí.− − 1− − 100c.{displaystyle c=leftlfloor {frac {y-1}{100}rightrfloor {text{y}quad} g=y-1-100c.}

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

w=()d+e+f+g+⌊g4⌋)mod7,{displaystyle w=left(d+e+g+leftlfloor {frac {}rightrfloor right){bmod {7}}}

donde se elige el módulo positivo.

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,

c mod. 40123
f0531

Para el calendario juliano,

c mod. 70123456
f5432106
Showing translation for

Lewis Carroll 's method

Charles Lutwidge Dodgson (Lewis Carroll) ideó un método parecido a un rompecabezas, pero parcialmente tabular al utilizar los mismos números índice para los meses que en la "Tabla completa: calendarios julianos y gregorianos" arriba. Enumera los mismos tres ajustes para los primeros tres meses de los años no bisiestos, uno 7 mayor 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 es 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 sólo funciona en un calendario juliano que comienza el año el 1 de enero, en lugar del 25 de marzo como en el calendario "antiguo". Calendario juliano.

Algoritmo:

Tome la fecha dada en 4 porciones, viz. el número de siglos, el número de años a lo largo, el mes, el día del mes.

Computar los siguientes 4 elementos, añadiendo cada uno, cuando se encuentre, al total de los artículos anteriores. Cuando un artículo o total excede 7, divide en 7, y mantiene el resto solamente.

Century-item: Para 'Old Style' (que terminó 2 septiembre 1752) subtract from 18. Para 'Nuevo Estilo' (que comenzó 14 septiembre 1752) dividir por 4, tomar overplus [superior] de 3, multiplicar el resto por 2.

Año: Agregue el número de docenas, el overplus, y el número de 4s en el overplus.

Mes: Si comienza o termina con una vocal, resta el número, denotando su lugar en el año, de 10. Esto, además de su número de días, da el artículo para el mes siguiente. El artículo para enero es "0"; para febrero o marzo, "3"; para diciembre, "12".

Tema del día: El total, alcanzado así, debe ser corregido, deduciendo "1" (añadiendo primero 7, si el total es "0"), si la fecha es Enero o Febrero en un año bisiesto, recordando que cada año, divisible por 4, es un Año de Salto, excepto sólo los años de 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" que significa Domingo, "1" Lunes, y así sucesivamente.

Ejemplos:

1783, 18 de septiembre

17, dividido por 4, deja "1" encima; 1 de 3 da "2"; dos veces 2 es "4". 83 son 6 docenas y 11, lo que da 17; más 2 da 19, es decir (dividiendo por 7) "5". Total 9, es decir, "2" El ítem 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 sale. 18 da "4". Responda, "jueves".

1676, 23 de febrero

16 de 18 da "2" 76 es 6 docenas y 4, lo que da 10; más 1 da 11, es decir, "4". Total "6" La partida de febrero es "3". Total 9, es decir, "2" 23 da "2". Total "4" La corrección por año bisiesto da "3". Responda, "miércoles".

Dado que el 23 de febrero de 1676 (contando febrero como segundo mes) es, para Carroll, el mismo día que el 4 de marzo gregoriano de 1676, no logra llegar a la respuesta correcta, es decir, "viernes", "el viernes". para una fecha de estilo antiguo que 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 números de años diferentes, tal como lo hizo George Washington. El cumpleaños de s difiere entre los dos calendarios.

Did you mean:

It is noteworthy that those who have published Carroll 's method have failed to point out his error, most notably Martin Gardner.

En 1752, el Imperio Británico abandonó el uso del calendario juliano antiguo y adoptó el calendario gregoriano, que se ha convertido en el estándar actual en la mayoría de los países del mundo. Para obtener más información, consulte Fechas de estilo antiguo y nuevo.

Métodos en código informático

Keith

En las expresiones en lenguaje C siguientes, y, m y d son, respectivamente, variables enteras que representan el año (por ejemplo, 1988)., mes (1-12) y día del mes (1-31).

()d+=m.3 ? Sí.-- : Sí.-2,23*m/9+d+4+Sí./4-Sí./100+Sí./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 una función autónoma para convertir una fecha gregoriana en un día numérico de la semana. Devuelve 0 = domingo, 1 = lunes, etc. Esta expresión utiliza un componente mensual menos engorroso que el algoritmo de Zeller.

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

Did you mean:

Sakamoto 's methods

El precursor tabular del algoritmo de Tøndering está incorporado en la siguiente función de K&R C. Con pequeños cambios, fue adaptado para otros lenguajes de programación de alto nivel como APL2. Publicado por Tomohiko Sakamoto en el grupo de noticias Comp.lang.c Usenet en 1992, es exacto para cualquier fecha gregoriana.

día de semana()Sí., m, d)/* 1 < > > > 1 > > 1 > >{} estática int t[] = {}0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4}; si () m . 3 ) {} Sí. -= 1; } retorno ()Sí. + Sí./4 - Sí./100 + Sí./400 + t[m-1] + d) % 7;}

Devuelve 0 = domingo, 1 = lunes, etc.

Sakamoto también publicó simultáneamente una versión más confusa:

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

Esta versión codifica las compensaciones mensuales en la cadena y, como resultado, requiere una computadora que use ASCII estándar para ejecutar el algoritmo correctamente, lo que reduce su portabilidad. Además, ambos algoritmos omiten las declaraciones de tipo int, que está permitido en el K&R C original pero no en ANSI C.

(El algoritmo de Tøndering es, nuevamente, similar en estructura a la congruencia de Zeller y al código corto de Keith, excepto que el componente relacionado con el mes es 31*m/12. El de Sakamoto está en algún lugar entre el gaussiano dispar y el Schwerdtfeger. #39;algoritmo, aparentemente inconsciente de la forma de expresión.)

Did you mean:

Gauss ' in MATLAB

% ejemplo fecha de entraday1 = 2022;m1 = 1;d1 = 1;mes_offset = [0 3 3 6 1 4 6 2 5 0 3 5]; % año común% offset if y1 salto yearsi mod()y1,4)==0 " mod()y1,100)==0 " mod()y1,400)==0 mes_offset=0 3 4 0 2 5 0 3 6 1 4 6]; % año bisiestofinal% Gregorsemana_gregor = rem() d1+mes_offset()m1) + 5*rem()y1-1,4) + 4*rem()y1-1,100) + 6*rem()y1-1,400),7)% Juliansemana_julian = rem()6+5*rem()y1-1,4) + 3*()y1-1),7)

0: Domingo 1: Lunes.. 6: Sábado

Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save