Nwlapcug.com


Come convertire le date CTime

La variabile di CTime e la funzione dello stesso nome, entrambi normalmente utilizzati in più linguaggi di programmazione e database per identificare un momento specifico nel tempo, utilizzare il formato "Orario Unix" così chiamato, definito come la quantità di secondi passati da mezzanotte il 1 ° gennaio 1970. Mentre la maggior parte delle lingue, come C++, PHP o Java, contengono funzioni predefinite utilizzate per convertire tali variabili in loro data corrispondente, si può fare lo stesso calcolo a mano.

Istruzioni

1

Dividere il CTime variabile, chiamato "N" da questo punto in poi, per 86400 al fine di calcolare il numero di giorni. Arrotondare al numero intero più vicino e scriverlo. Questo numero sarà "TD" da questo punto in poi. Calcolare (N - TD * 86400) e prenderne nota. Questo numero sarà "RS" da questo punto in poi.

Ad esempio, se N = 4956352625, quindi TD = 57365 e RS = 16625.

2

Dividere TD per 365 e arrotondare al numero intero più vicino. Chiamare il risultato "TY" e prenderne nota. Calcolare (TD - TY * 365), chiamare il risultato "RD" e scriverlo. Dividere TY per quattro, arrotondare al numero intero più vicino, chiamare il risultato "RLY" e scriverlo. Se RLY è maggiore di RD, diminuire TY da uno e aumentare RD di 365. Se RLY è ancora maggiore di RD ripetere il processo di diminuzione TY da uno e prolungato RD di 365 fino a RLY è inferiore o uguale a Rd.

Ad esempio, se TD = 57365, allora TY = 157, RD = 60 e RLY = 39.

3

Calcolare (1970 + TY), chiamarlo "Y" e scrivere in giù. Dividere (Y - 1) per quattro, arrotondare al numero intero più vicino e moltiplicare il risultato per quattro. Chiamare il risultato "CLY"..--questo è l'ultimo anno di salto di aver superato completamente prima di Y.

Ad esempio, se TY = 157, allora Y = 2127 e CLY = 2124.

4

Calcolare (CLY - 1972), dividere il risultato per quattro e aggiungere uno, chiamare il risultato "TLY" e scriverlo. TLY dovrebbe essere un numero intero che differisce da RLY per non più di uno; la maggior parte del tempo, TLY e RLY saranno identici. Se questi due numeri differiscono di più di uno, hai fatto un errore; Ripetere la procedura dal passo uno.

Ad esempio, se CLY = 2124, quindi TLY = 39.

5

CLY di dividere per 100 e arrotondare al numero intero più vicino. Chiamare il risultato "TC" e prenderne nota. Se il TC è uguale a 19, definire una nuova variabile denominata "NS" come uguale a zero.

In caso contrario, sottrarre 20 da TC, chiamarlo "NTC" e scriverlo. Dividere NTC per quattro e arrotondare al numero intero più vicino. Chiamare il risultato "NTCR" e prenderne nota. Sottrarre NTCR da NTC, chiamare il risultato "NS" e scriverlo. Lo scopo di questo calcolo è quello di determinare la quantità di anni tra il 1972 e CLY cui numeri erano divisibili per quattro che non erano salto anni: in calendario Gregorian, quelli sono gli anni che sono totalmente divisibili per 100 ma non per 400, ad esempio gli anni 2100, 2200, 2300, 2500 e cosi via.

Ad esempio, se CLY = 2124, quindi TC = 21, NTC = 1, NTCR = 0 e NS = 1.

6

Calcolare (TLY - NS), chiamare il risultato "LY" e prenderne nota.

Ad esempio, se TLY = 39 e NS = 1, allora LY = 38.

7

Calcolare (RD - LY), chiamare il risultato "CD" e prenderne nota.

Ad esempio, se RD = 60 e LY = 38, quindi CD = 22.

8

Determinare se Y è un anno bisestile controllando se è interamente divisibile per quattro. Se non lo è, non si tratta di un anno bisestile. Se è, è un anno bisestile a meno che è anche interamente divisibile per 100 e non interamente divisibile per 400.

Se il CD è maggiore o uguale a 366 e Y è un anno bisestile, aumentare Y di uno e diminuire CD di 366; Se Y non è un anno bisestile, aumentare Y di uno e ridurre il CD di 365. Se il CD è ancora maggiore o uguale a 366 ripetere questo processo fino a quando diventa inferiore a 366.

Se il CD è ora pari a 365 e Y non è un anno bisestile, aumentare Y di uno e ridurre il CD di 365. Se Y è un anno bisestile sia CD e Y rimangono invariati.

Se il CD è ora inferiore a 365 entrambi i CD e Y rimangono invariati.

Ad esempio, se Y = 2127 e CD = 22, entrambi restano invariati.

9

Calcolare il mese utilizzando il seguente metodo. Se il valore di Y è stato modificato determinare innanzitutto se la nuova Y è un anno bisestile o non si utilizza il calcolo descritto nel passaggio 8.

Se Y non è un anno bisestile, utilizzare il metodo seguente.
Se il CD è maggiore o uguale a zero, ma inferiore a 31, poi "M" è "Gennaio" e "D" è uguale a (CD + 1).
Se il CD è maggiore o uguale a 31, ma inferiore a 59, quindi "M" è "Febbraio" e "D" è uguale a (CD - 30).
Se il CD è maggiore o uguale a 59, ma inferiore a 90, quindi "M" è "Marzo" e "D" è uguale a (CD - 58).
Se il CD è maggiore o uguale a 90, ma inferiore a 120, quindi "M" è "Aprile" e "D" è uguale a (CD - 89).
Se il CD è maggiore o uguale a 120, ma inferiore a 151, quindi "M" è "Può" e "D" è uguale a (CD - 119).
Se il CD è maggiore o uguale a 151, ma inferiore a 181, quindi "M" è "Giugno" e "D" è uguale a (CD - 150).
Se il CD è maggiore o uguale a 181, ma inferiore a 212, quindi "M" è "Luglio" e "D" è uguale a (CD - 180).
Se il CD è maggiore o uguale a 212, ma inferiore a 243, quindi "M" è "Agosto" e "D" è uguale a (CD - 211).
Se il CD è maggiore o uguale a 243, ma inferiore a 273, quindi "M" è "Settembre" e "D" è uguale a (CD - 242).
Se il CD è maggiore o uguale a 273, ma inferiore a 304, quindi "M" è "Ottobre" e "D" è uguale a (CD - 272).
Se il CD è maggiore o uguale a 304, ma inferiore a 334, quindi "M" è "Novembre" e "D" è uguale a (CD - 303).
Se il CD è maggiore o uguale a 334, ma inferiore a 365, quindi "M" è "December" e "D" è uguale a (CD - 333).

Se Y è un anno bisestile, utilizzare il metodo seguente.
Se il CD è maggiore o uguale a zero, ma inferiore a 31, poi "M" è "Gennaio" e "D" è uguale a (CD + 1).
Se il CD è maggiore o uguale a 31, ma inferiore a 60, quindi "M" è "Febbraio" e "D" è uguale a (CD - 30).
Se il CD è maggiore o uguale a 60, ma inferiore a 91, quindi "M" è "Marzo" e "D" è uguale a (CD - 59).
Se il CD è pari a 91 o superiore, ma inferiore a 121, quindi "M" è "Aprile" e "D" è uguale a (CD - 90).
Se il CD è maggiore o uguale a 121, ma inferiore a 152, quindi "M" è "Può" e "D" è uguale a (CD - 120).
Se il CD è maggiore o uguale a 152, ma inferiori a 182, quindi "M" è "Giugno" e "D" è uguali a (CD - 151).
Se il CD è maggiore o uguale a 182, ma inferiore a 213, quindi "M" è "Luglio" e "D" è uguale a (CD - 181).
Se il CD è maggiore o uguale a 213, ma inferiore a 244, quindi "M" è "Agosto" e "D" è uguale a (CD - 212).
Se il CD è maggiore o uguale a 244, ma inferiore a 274, quindi "M" è "Settembre" e "D" è uguale a (CD - 243).
Se il CD è maggiore o uguale a 274, ma inferiore a 305, quindi "M" è "Ottobre" e "D" è uguale a (CD - 273).
Se il CD è maggiore o uguale a 305, ma inferiore a 335, quindi "M" è "Novembre" e "D" è uguale a (CD - 304).
Se il CD è maggiore o uguale a 335, ma inferiore a 366, quindi "M" è "December" e "D" è uguale a (CD - 334).

Ad esempio, se Y = 2127 e CD = 22, allora M è gennaio e D = 23.

10

Dividere RS per 3600 e arrotondare al numero intero più vicino. Chiamare il risultato "H" e prenderne nota. H non dovrebbe essere maggiore di 23. In questo caso, hai fatto un errore; Ripetere l'intero processo dall'inizio. Calcolare (RS - H * 3600), chiamare il risultato "RSH" e scriverlo.

Ad esempio, se RS = 16625, allora H = 4 e RSH = 2225.

11

Dividere RSH per 60 e arrotondare al numero intero più vicino. Chiamare il risultato "M" e prenderne nota. Calcolare la chiamata (RSH - M * 60), il risultato "S" e prenderne nota.

Ad esempio, se RSH = 2225, quindi M = 37 e S = 5.

12

Scrivi il risultato come "H:m: s, D M Y." Questa è la data corrispondente al vostro valore di CTime.

Ad esempio, se N = 4956352625, il risultato è "04: 37:05, 23 gennaio 2127."

Consigli & Avvertenze

  • Controllare il risultato utilizzando un convertitore online come quello trovato sul sito Fourmilab o inserendo la seguente formula in un foglio di calcolo, sostituendo "Valore" con il valore di CTime: = data (1970,1,1) + valore/86400. A seconda del tuo programma di foglio di calcolo potrebbe essere necessario modificare il formato della cella in "Data" prima che il risultato viene visualizzato correttamente.
  • Alcuni programmi, specialmente più anziani come Visual Studio .NET 2003, solo memorizzare variabili CTime come integer con segno a 32-bit rendendo impossibile specificare qualsiasi momento nel tempo dopo 03.14.07 il 19 gennaio 2038, che corrisponde al valore massimo possibile per un integer a 32 bit, 2147483647. Pezzi più recenti del software di evitare questo problema utilizzando interi con segno a 64 bit.