Problemas matemáticos complejos con fechas

seguro. Puedo calcular el día de cualquier día entre 1200 y 2400 en el calendario gregoriano mediante aritmética mental y cálculo manual. De hecho, no hay ningún misterio. Es fácil decir que los años 2000 a 2100 son días públicos y también es fácil preguntar el día de Año Nuevo en 20XX. Por ejemplo, ¿cuándo es el día de Año Nuevo en 2033? Es decir, XX=33 xx por 1, 25=41,25, el número entero es 4141÷7=5+6. Este es el día de Año Nuevo de 2033, el sábado de este resto; ¿por qué? Si observa el calendario perpetuo, comprenderá que el día de Año Nuevo en 2001 es el lunes, el 02 es el martes, el 03 es el miércoles, el 04 es el jueves y el 05 es el sábado. Debido a que 2004 es un año bisiesto, un día extra en febrero equivale. 29 días. El orden de la semana no es el orden del año. ¿No es así? Si no hubiera años bisiestos en el calendario, serían 365 días. Si el módulo de 7 es 1 (es decir, el resto se divide por 7), entonces la secuencia temporal también es del orden de la semana, pero sin el término solar del año bisiesto, será irregular. ¿Qué hacemos? ¿No es un día más en cuatro años? Una cuarta parte del número actual de años es un número adicional de días. Este número más el número de años módulo 7 es el valor de la semana del día de Año Nuevo. En cuanto al día específico de la semana, algunos productos pequeños solían circular semanalmente, lo cual era muy regular. Por ejemplo, si el año no es bisiesto y el día de Año Nuevo es el viernes (1 de enero), entonces el 1 de octubre también es viernes, el sábado es 1 de mayo, el domingo es 1 de agosto y el lunes es febrero, marzo y noviembre. Marzo, el martes es el 1 de junio, el miércoles es el 1 de septiembre y el 1 de diciembre, y el jueves es el 1 de abril y julio. El calendario perpetuo de las pequeñas mercancías se basa en esta ley. Es muy conveniente colocarlo en las siete articulaciones del dedo índice.

/p/2796757357Ven al foro exclusivo del equipo para hacer preguntas.

La fórmula más común: (solo mira la fórmula si te aburres) w =[y-1]+[(y-1)/4]-[(y-1)/100] +[(y -65438) La mejor fórmula es la de Chuler: w =[c/4]-2c+y+[y/4]+[13 *(m+1)/165438+Octubre y febrero deben basarse en el Se calculan el año anterior 65438+marzo y 65438+abril. En este momento, C e Y se calculan en función del año anterior. [...] En ambas fórmulas, significa tomar solo la parte entera del resultado del cálculo. Divida la w calculada por 7 y el resto es el día de la semana. Si el resto es 0, es domingo. - .Se dice que debido a que el Génesis de la Biblia estipula que Dios pasó seis días en el Génesis y descansó el séptimo día, las personas también organizan su trabajo y su vida en un ciclo de siete días, siendo el domingo el día de descanso. Desde un punto de vista práctico, también es apropiado un ciclo de siete días. Por lo tanto, aunque el ciclo de trabajo tradicional chino es de diez días (como los "Diez días libres" mencionados en el "Prefacio a Wang Tengting" de Wang Bo, lo que significa que los funcionarios trabajan una vez cada diez días y se toman un feriado el décimo día), Posteriormente se adoptó el sistema de ciclo de trabajo occidental. En la vida diaria, muchas veces nos encontramos con el problema de saber qué día es. A veces, también queremos saber qué día es en la historia. Normalmente, la forma eficaz de solucionar este problema es mirar el calendario, pero nunca llevamos el calendario con nosotros, y mucho menos el calendario perpetuo que existe desde hace miles de años. Si desea calcular el día de la semana en programación informática, es aún menos realista almacenar un calendario perpetuo por adelantado. ¿Hay alguna forma de obtener la fórmula en este momento, de qué día de la semana es del mes y del día? La respuesta es sí. De hecho, hacemos esto con bastante frecuencia. Primero tomemos un ejemplo simple. Por ejemplo, sabiendo que el 1 de mayo de 2004 es sábado, no es difícil calcular que el 31 de mayo de 2004 es el Día Mundial Sin Tabaco. Podemos contar del 1 al 31, contando las semanas al mismo tiempo, y finalmente deducir que el 31 de mayo es lunes. De hecho, puedes utilizar cálculos matemáticos sin romperte los dedos. Sabemos que una semana es un ciclo de siete días, por lo que el 1 de mayo es el sexto día del día sidéreo, y siete días después, el 8 de mayo también es sábado. En términos de fechas, 8-1=7, que es múltiplo de 7. De manera similar, el 15, 22 y 29 de mayo también son sábados, y las diferencias entre sus fechas y el 1 de mayo son 14, 21 y 28 respectivamente, que también son múltiplos de 7. ¿Qué pasa con el 31 de mayo? 31-1=30. Aunque no es múltiplo de 7, cuando se divide 31 entre 7, el resto es 2. Es decir, la semana del 31 de mayo es dos días después de la semana del 1 de mayo. Dos días después del sábado es lunes. Este simple cálculo nos da una idea básica para calcular una semana: primero, necesitamos saber qué día es anterior al día que queremos calcular y usar este día como estándar de cálculo, que es equivalente al "origen" del cálculo. En segundo lugar, sabemos cuántos días hay entre el día que queremos calcular y este día.

Divida esta diferencia de fechas por 7 y el resto indica cuántos días después del día de la semana queremos calcular. Si el resto es 0, significa que los días de los dos días son iguales. Evidentemente, si la fecha elegida como "origen" es el domingo, entonces el resto será exactamente igual al día de la semana, lo que hará más cómodo el cálculo. Pero calcular directamente el número de días entre dos días sigue siendo relativamente engorroso. Por ejemplo, hay un intervalo de 7947 días entre el 29 de julio de 1982 y el 20 de mayo de 2004, por lo que no se puede calcular de una vez. Incluye tres períodos: primero, el número de días restantes en el año posterior al 29 de julio de 1982; segundo, 1983-2003, todos los días del año veintiuno, tercero, el número de días desde el día de Año Nuevo de 2004 hasta mayo; 1. El segundo párrafo es más fácil de calcular. Es igual a 21*365+5=7670 días. La razón para agregar 5 es que hay cinco años bisiestos durante este período. Los párrafos primero y tercero son más problemáticos. Por ejemplo, en el tercer párrafo, debe sumar el número de días de los primeros cuatro meses de mayo y sumar el valor de la fecha, es decir, 31+29+31+31 = 122 días. De manera similar, en el primer párrafo, debe sumar el número de días de los cinco meses posteriores a julio, más los días restantes de julio, a * * * son 155 días. Entonces, el número total de días entre * * * es 122+767155=7947 días. Piénselo detenidamente: si elige la fecha de "origen" como 65438 + 31 de febrero, el primer período también será un año completo. De esta forma, el primer período y el segundo período se pueden combinar y calcular. El total de todo el año es exactamente igual a la diferencia anual de dos días menos uno. Si además seleccionamos la fecha de "origen" como 1 a.C., 65438 + 31 de febrero (o como los astrónomos usan 0 d.C., 65438 + 31 de febrero), entonces el total para todo el año es exactamente el número de años en un día que se calculará. menos uno. Después de esta simplificación, sólo nos falta calcular dos periodos de tiempo: uno es el número total de días en tantos años enteros, el segundo, ¿qué día del año quieres contar? Casualmente, según la configuración del año y mes del calendario gregoriano, podemos retroceder así, y el 1 a. C., el 12 a. C. y el 31 a. C. resultan ser domingo, es decir, el resto del número total de días. dividido por 7 resulta ser un determinado día de la semana. Así que ahora sólo queda una pregunta: ¿cuántos años bisiestos hay en tantos años enteros? Esto requiere comprender las reglas de salto del calendario gregoriano. Sabemos que el año promedio en el calendario gregoriano es de 365 días y un año bisiesto es de 366 días. La forma de fijar un salto es añadir un día al año en el que febrero es divisible por 4, pero no es un salto que es divisible por 100, sino un salto que es divisible por 400. Por lo tanto, años como 1600, 2000 y 2400 son años bisiestos, y años como 1700, 1800, 1900 y 2100 son años normales. Según el calendario gregoriano, el año 1 a.C. también es bisiesto. Por lo tanto, el número de años bisiestos en todos los años desde 1 a. C. (o 0 d. C.) 12 31 hasta un determinado año Y es igual a [(Y-1)/4]-[(Y-1)/65433. El primer ítem indica la necesidad de sumar el número de años divisible por 4, el segundo ítem indica la necesidad de eliminar el número de años divisible por 100 y el tercer ítem indica la necesidad de sumar el número de años divisible por 400. La razón por la que y necesita reducirse en uno es porque obtuvimos la primera fórmula para calcular el día de la semana: w = (y-1)* 365+[(y-1)/4]-[(y-1 )/100] . La w calculada es el número de días desde el 1 a. C. (o 0 d. C.) 65438 + 31 de febrero hasta el día de hoy. Divida w entre 7, cuál es el resto, este día es el día de la semana. Por ejemplo, calculemos 1:w = (2004-1)* 365+[(2004-1)/4]-[(2004-1)/100] en mayo de 2004. +(31+29+31+31) = 731702, 731702/7 = 104528...6, el resto es 6, lo que indica que este día es. Esto es cierto. Aunque la fórmula anterior (1) es muy precisa, el número calculado es demasiado grande y resulta incómodo de usar. Piénselo detenidamente. De hecho, el propósito de este intervalo de días W es simplemente obtener el resto después de dividir por 7. Esto nos inspira a ver si podemos simplificar este valor de w encontrando un número menor que sea igual a su resto. En términos de teoría de números, todavía podemos calcular los números exactos de la semana encontrando un entero positivo más pequeño que sea congruente con él. Obviamente, la razón por la que W es tan grande es porque el primer término (Y-1)*365 de la fórmula es demasiado grande. De hecho, (Y-1)*365 =(Y-1)*(364+1)=(Y-1)*(7 * 52+1)= 52 *(Y).

Esta relación se puede expresar como: (y-1) * 365 ≡ y-1 (mod 7), donde ≡ es el símbolo de congruencia en teoría de números, mod 7 significa que cuando se usa 7 como módulo (es decir, el divisor) , ambos lados del símbolo ≡ Los números son congruentes. Entonces se puede usar (Y-1) en lugar de (Y-1)*365, y obtenemos la famosa y más común fórmula para calcular los días de la semana: w = (y-1)+[(y-1) /4. ¿Es posible calcular directamente usando mes y fecha? La respuesta también es sí. Veamos el número de días de cada mes. La lista es la siguiente: Mes: 65438+Octubre, Febrero, Marzo, Abril, Mayo, Julio, Agosto, Septiembre, 65438+Octubre, 65438+Febrero-. -Días:3128(29)313031303130313031 Si se resta 28 (=4*7) de todos estos días, dividir W por 7 no se verá afectado. Entonces obtenemos otra tabla: Mes: 65438+octubre, febrero, marzo, abril, mayo, junio, julio, agosto, septiembre, 165438+octubre, 65438+febrero-. - Número de días restantes: 3 0 (1) 323232323 Total promedio anual: 3368 1131619 21242629 Total año bisiesto: 3479 121720. Si observas con atención, encontrarás que en los cinco meses de marzo a julio, excepto enero y febrero, el resto de los días son 3, 2, 3, 2, 3. El número de días en los cinco meses de agosto a 65438 + febrero También es 3, 2, 3, 2, 3, solo se repite. En los días acumulados correspondientes, la diferencia entre los días acumulados del mes siguiente y los días acumulados del mes anterior menos 28 es esta repetición. Es precisamente por esta regla que el número acumulado de días en años ordinarios y bisiestos se puede expresar fácilmente mediante fórmulas matemáticas: ╭d (cuando m = 1) d = { 31 + d; 3) ╰ [13 *(M+1)/5]-7+(M-1)* 28+d+I (Cuando M≥3) Donde [...] todavía significa solo. myd son el mes y el día a calcular respectivamente; I=0 en años ordinarios e i=1 en años bisiestos. Para la expresión M≥3, es necesario explicar: [13*(M+1)/5]-7 es el valor acumulado promedio anual en la segunda tabla anterior, más (M-1)*28 es lo que desea El número total de días en todos los meses anteriores al mes que se calcula. Esta es una forma muy inteligente de implementar un bucle 3, 2, 3, 2, 3 a través de operaciones con números enteros. Por ejemplo, para el 1 de mayo de 2004, tenemos: d =[13 *(5+1)/5]-7+(5-1)* 28+1 = Si, de forma más flexible, ponemos 65438+ 10 meses y febrero se consideran "65438+3 meses" y "65438+4 meses" del año anterior. No solo siguen esta fórmula, sino que la fórmula se simplifica a: d =[13 *(m+). 1)/5]-7 +(m-1)* 28+d .(3≤m≤14)(4)La fórmula anterior para calcular el día de la semana se puede simplificar aún más como: w =(y-1 )+[(y-1)/4] -[(y-1)/6543828+d. Debido a que -7 y (M-1)*28 son divisibles por 7, si se eliminan estos dos elementos, el resto de W dividido por 7 permanece sin cambios. La fórmula queda: w =(Y-1)+[(Y-1)/4]-[(Y-1)/100]+[(Y-1)/400]+[Cabe señalar que 65438+ Octubre y febrero ya se consideran 65438+marzo y 65438+abril del año anterior, por lo que al calcular la semana de 65438 por ejemplo, junio de 2004 65438+1 de octubre es jueves. Si utilizamos esta fórmula, tenemos: w =(2003-1)+[(2003-1)/4]-[(2003-1)/100]+[(2003-1)]2524/7 = 360. .. 4. Es realista. La fórmula (5) ya es una fórmula para calcular el día de la semana a partir del año, mes y día, pero no es la más concisa. También hay formas mejoradas de tratar el año. Usemos esta fórmula para calcular la semana del 1 de marzo del primer año de cada siglo de la siguiente manera: Año: 1 (401, 801,..., 2001) 101 (5065438) 2101). 01 (601, 1001, ..., 2201) 301 (701, 101, ..., 2301) - Si tomamos el número de la semana de marzo 301 (706438 (6) en la fórmula, c es el número del siglo de este siglo menos uno, mod Representa una operación modular, es decir, encontrar el resto.

Por ejemplo, para el 1 de marzo de 20065438 y C=20, entonces: W = (4-20mod4) * 2-4 = 8-4 = 4. Sustituyendo la ecuación (6) en la ecuación (5), se puede usar después de la transformación: (y-1)+[(y-1)/4]-[(y-1)/100]+[(y-1) /400] 8801. (y-1)+[(y-1)/4]-[(y-1)/100]+[(y-1)/400] en la fórmula (5). Esta fórmula se escribe de la siguiente manera: w =(4-c mod 4)* 2-1+[13 *(m+1)/5)+d (8) Con la fecha y semana del primer año de cada siglo. Fórmulas de cálculo, es fácil obtener las fórmulas de cálculo de fechas y días de la semana de otros años de este siglo. Porque en un siglo, el año que termina en 00 es el último año. No es necesario considerar la regla de "cien años bisiestos, cuatrocientos años bisiestos", solo la regla de "cuatro años bisiestos". Imitando el método de simplificar la fórmula (1) a la fórmula (2), podemos obtener fácilmente una fórmula más simple para calcular la fecha de cualquier día a partir de la fórmula (8) que la fórmula (5): w = (4-c mod 4)* 2-1+(y-1). Si considera que la aritmética modular no son las cuatro operaciones aritméticas, puede reescribir (4-C mod 4) * 2 en una expresión que solo contenga las cuatro operaciones aritméticas. Porque existe una relación entre el cociente q del siglo menos un C dividido por cuatro y el resto r: 4q+r = C, donde r es C mod 4, entonces sí: r = c-4q = c-4 * [c/4]. (10) Entonces (4-c mod 4)* 2 = (4-c+4 *[c/4])* 2 = 8-2c+8 *[c/4]. . (11) Sustituyendo la fórmula (11) en (9), obtenemos: w =[c/4]-2c+y+[y/4]+[13 *(m+1)/5]+d-1. (12) Esta fórmula es el siglo menos uno y el año termina con dos dígitos. Lo único que hay que cambiar es considerar 65438+octubre y febrero como 65438+marzo y 65438+abril del año anterior, y C e Y se toman según el año del año anterior. Por lo tanto, esta generalmente se considera la mejor fórmula para calcular el día de la semana para cualquier día. Esta fórmula fue deducida por primera vez por el matemático alemán Christian Zeller (1822-1899) en 1886, por lo que se la conoce comúnmente como fórmula de Zeller. Para facilitar el cálculo oral, [13 * (M+1)/5] en la fórmula a menudo se escribe como [26 * (M+1)/10]. Ahora contemos la semana del 1 de mayo de 2004. Obviamente, C = 20, y = 4, M = 5, d = 1, sustituido en la fórmula de Lecai, es: W = [20/4] -40 + 4 + 1 + [65438] Para facilitar el cálculo, Podemos sumar Sumar un múltiplo entero de 7 para convertirlo en un número positivo, por ejemplo, sumar 70 para obtener 55. Dividido por 7, los 6 restantes indican que el día es sábado. Esto es consistente con la situación real y los resultados calculados por la fórmula (2). Por último, cabe señalar que las fórmulas anteriores se basan en la ley de salto del calendario gregoriano. Para el calendario juliano, Lecai también derivó la fórmula correspondiente: W = 5-C+Y+[Y/4]+[13 *(M+1)/5]+D-1. (13).De esta manera, finalmente lo conseguiremos de una vez por todas. Materiales de referencia:

/30137.html