Tecnología

Inicio

Cómo convertir CTime de fechas

La variable CTime y la función del mismo nombre, ambos comúnmente utilizado en múltiples lenguajes de programación y bases de datos para identificar a un momento específico en el tiempo, utilizar el llamado formato "Unix Time", que se define como la cantidad de segundos que ha pasado a partir de la medianoche del 1 de enero de 1970. Mientras que la mayoría de los lenguajes, como C ++, PHP o Java, contiene funciones predefinidas que se utilizan para convertir dichas variables en la fecha correspondiente, se puede hacer el mismo cálculo con la mano.

Instrucciones

1 Divida la variable CTime, llamado "N" desde este punto en adelante, por 86400 con el fin de calcular el número de días. Ronda hacia abajo al número entero más cercano y escribirlo. Este número será "TD" desde este punto en adelante. Calcular (N - TD * 86400) y anótelo. Este número será "RS" de este punto en adelante.

Por ejemplo, si N = 4956352625, a continuación, TD = 57365 y RS = 16.625.

2 Divide TD 365 y se redondea hacia abajo al número entero más próximo. Llame el resultado "TY" y escribirlo. Calcular (TD - TY * 365), llame al resultado "RD" y anótelo. Divide TY por cuatro, redondea hacia abajo al número entero más cercano, llame al resultado "RLY" y anótelo. Si RLY es mayor que RD, disminuir TY por uno y aumentar RD por 365. Si RLY es todavía mayor que RD repetir el proceso de disminución de TY por uno y el aumento de RD por 365 hasta RLY es menor que o igual a RD.

Por ejemplo, si TD = 57.365, a continuación, TY = 157, RD = 60 y = 39 RLY.

3 Calcular (1970 + TY), lo llaman "Y" y escribirlo. Divide (Y - 1) por cuatro, redondea hacia abajo al número entero más próximo y multiplicar el resultado por cuatro. Llamar el resultado "CLY" - este es el último año bisiesto haber pasado completamente antes de Y.

Por ejemplo, si TY = 157, entonces Y = 2,127 y = 2,124 CLY.

4 Calcular (CLY - 1972), se divide por cuatro y añadir uno, el resultado obtenido "TLY" y escribirlo. TLY debe ser un número entero que difiere de RLY por no más de uno; la mayor parte del tiempo, y TLY RLY serán idénticos. Si estos dos números difieren en más de uno, usted ha cometido un error; repetir el proceso desde el paso uno.

Por ejemplo, si CLY = 2124, entonces TLY = 39.

5 Divida CLY por 100 y se redondea hacia abajo al número entero más próximo. Llame el resultado "TC" y escribirlo. Si TC es igual a 19, definir una nueva variable llamada "NS", como igual a cero.

De lo contrario, restar 20 del TC, lo llaman "NTC" y escribirlo. Divida NTC por cuatro y alrededor de ella hacia abajo al número entero más próximo. Llame el resultado "NTCR" y escribirlo. Restar NTCR de NTC, llame el resultado "NS" y escribirlo. El propósito de este cálculo es determinar la cantidad de años entre 1972 y CLY cuyos números eran divisibles por cuatro que no fueron años bisiestos: en el calendario gregoriano, esos son los años que sean completamente divisibles por 100 pero no por 400, tales como los años 2100, 2200, 2300, 2500 y así sucesivamente.

Por ejemplo, si CLY = 2,124, a continuación, TC = 21, NTC = 1, NTCR = 0 y NS = 1.

6 Calcular (TLY - NS), llame al resultado "LY" y anótelo.

Por ejemplo, si TLY = 39 y NS = 1, a continuación, LY = 38.

7 Calcular (RD - LY), llame el resultado "CD" y escribirlo.

Por ejemplo, si RD = 60 y LY = 38, a continuación, CD = 22.

8 Determinar si Y es un año bisiesto comprobando si es totalmente divisible por cuatro. Si no es así, no es un año bisiesto. Si lo es, se trata de un año bisiesto a menos que también es totalmente divisible por 100 y que no están enteramente divisibles por 400.

Si el CD es mayor que o igual a 366 e Y es un año bisiesto, aumentar Y por uno y disminuir CD por 366; si Y no es un año bisiesto, aumentar Y por uno y disminuir CD por 365. Si el CD es aún superior o igual a 366 repita este proceso hasta que se vuelve inferior a 366.

Si el CD es ahora igual a 365 e Y no es un año bisiesto, aumentar Y por uno y disminuir CD por 365. Si Y es un año bisiesto tanto de CD e Y permanecen sin cambios.

Si el CD es ahora inferior a 365 tanto de CD e Y permanecen sin cambios.

Por ejemplo, si Y = 2127 y CD = 22, ambos permanecen sin cambios.

9 Calcular el mes usando el siguiente método. En primer lugar, determinar si el valor de Y ha cambiado si el nuevo Y es un año bisiesto o no mediante el cálculo descrito en el paso ocho.

Si Y no es un año bisiesto, utilice el siguiente método.
Si el CD es mayor que o igual a cero, pero inferior a 31, a continuación, "M" es "Enero" y "D" es igual a (CD + 1).
Si el CD es mayor que o igual a 31, pero inferior a 59, a continuación, "M" es "Febrero" y "D" es igual a (CD - 30).
Si el CD es mayor que o igual a 59, pero inferior a 90, a continuación, "M" es "Marcha" y "D" es igual a (CD - 58).
Si el CD es mayor que o igual a 90, pero inferior a 120, a continuación, "M" es "Abril" y "D" es igual a (CD - 89).
Si el CD es mayor que o igual a 120, pero inferior a 151, a continuación, "M" es "May" y "D" es igual a (CD - 119).
Si el CD es mayor que o igual a 151, pero inferior a 181, a continuación, "M" es "Junio" y "D" es igual a (CD - 150).
Si el CD es mayor que o igual a 181, pero inferior a 212, a continuación, "M" es "Julio" y "D" es igual a (CD - 180).
Si el CD es mayor que o igual a 212, pero inferior a 243, a continuación, "M" es "August" y "D" es igual a (CD - 211).
Si el CD es mayor que o igual a 243, pero inferior a 273, a continuación, "M" es "Septiembre" y "D" es igual a (CD - 242).
Si el CD es mayor que o igual a 273, pero inferior a 304, a continuación, "M" es "Octubre" y "D" es igual a (CD - 272).
Si el CD es mayor que o igual a 304, pero inferior a 334, a continuación, "M" es "Noviembre" y "D" es igual a (CD - 303).
Si el CD es mayor que o igual a 334, pero inferior a 365, a continuación, "M" es "Diciembre" y "D" es igual a (CD - 333).

Si Y es un año bisiesto, utilice el siguiente método.
Si el CD es mayor que o igual a cero, pero inferior a 31, a continuación, "M" es "Enero" y "D" es igual a (CD + 1).
Si el CD es mayor que o igual a 31, pero inferior a 60, a continuación, "M" es "Febrero" y "D" es igual a (CD - 30).
Si el CD es mayor que o igual a 60, pero inferior a 91, a continuación, "M" es "Marcha" y "D" es igual a (CD - 59).
Si el CD es mayor que o igual a 91, pero inferior a 121, a continuación, "M" es "Abril" y "D" es igual a (CD - 90).
Si el CD es mayor que o igual a 121, pero inferior a 152, a continuación, "M" es "May" y "D" es igual a (CD - 120).
Si el CD es mayor que o igual a 152, pero inferior a 182, a continuación, "M" es "Junio" y "D" es igual a (CD - 151).
Si el CD es mayor que o igual a 182, pero inferior a 213, a continuación, "M" es "Julio" y "D" es igual a (CD - 181).
Si el CD es mayor que o igual a 213, pero inferior a 244, a continuación, "M" es "August" y "D" es igual a (CD - 212).
Si el CD es mayor que o igual a 244, pero inferior a 274, a continuación, "M" es "Septiembre" y "D" es igual a (CD - 243).
Si el CD es mayor que o igual a 274, pero inferior a 305, a continuación, "M" es "Octubre" y "D" es igual a (CD - 273).
Si el CD es mayor que o igual a 305, pero inferior a 335, a continuación, "M" es "noviembre" y "D" es igual a (CD - 304).
Si el CD es mayor que o igual a 335, pero inferior a 366, a continuación, "M" es "Diciembre" y "D" es igual a (CD - 334).

Por ejemplo, si Y = 2127 y CD = 22, entonces M es enero y D = 23.

10 Divida RS de 3600 y se redondea hacia abajo al número entero más próximo. Llame el resultado de "H" y escribirlo. H no debe ser superior a 23. Si es así, usted ha cometido un error; repetir todo el proceso desde el principio. Calcular (RS - H * 3600), el resultado llaman "RSH" y escriben en un papel.

Por ejemplo, si RS = 16625, entonces h = 4 y RSH = 2,225.

11 Divide RSH por 60 y se redondea hacia abajo al número entero más próximo. Llame el resultado de "M" y escribirlo. Calcular (RSH - M * 60), llamar el resultado de "S" y escribirlo.

Por ejemplo, si RSH = 2225, entonces M = 37 y S = 5.

12 Escribir el resultado como "H: M: S, DM Y." Esta es la fecha que corresponde a su valor CTime.

Por ejemplo, si N = 4956352625, el resultado es "04:37:05 23 de enero de 2127."

Consejos y advertencias

  • Comprobar su resultado utilizando un convertidor en línea, como la que se encuentra en el sitio web Fourmilab o mediante la introducción de la fórmula siguiente en una hoja de cálculo, en sustitución de "VALOR" con su valor CTime: = FECHA (1970,1,1) + VALOR / 86400. Dependiendo de su programa de hoja puede que tenga que cambiar el formato de la celda a la "fecha" antes de que los resultados se muestra correctamente.
  • Ciertos programas, especialmente los más antiguos, como Visual Studio .NET 2003, sólo almacenar variables CTime como enteros con signo de 32 bits por lo que es imposible especificar cualquier momento en el tiempo después de 03:14:07 el 19 de enero, 2038, que corresponde a la máxima posible valor para un entero de 32 bits, 2147483647. piezas más recientes del software de evitar ese problema mediante el uso de números enteros con signo de 64 bits.