Tipo de DATE
O tipo de DATA é implementado usando um número de ponto flutuante de 8 bytes.Os dias são representados por incrementos de número inteiro que começam com o 30 de dezembro de 1899, meia-noite como o tempo zero.Os valores de hora são expressos como o valor absoluto da parte fracionária do número.A tabela a seguir ilustra várias datas junto com seu equivalente numérico do tipo de DATA :
Data e hora |
representação |
---|---|
30 de dezembro de 1899, Meia-noite |
0.00 |
1º de janeiro de 1900, Meia-noite |
2.00 |
4 de janeiro de 1900, Meia-noite |
5.00 |
4 de janeiro de 1900, 6 AM.. |
5.25 |
4 de janeiro de 1900, Meio-dia |
5.50 |
4 de janeiro de 1900, 9... |
5.875 |
O tipo de dados de DATA , bem como a classe de COleDateTime , representam datas e horas como uma linha de. número clássicaA classe de COleDateTime contém vários métodos para manipular valores de DATA, incluindo a conversão e outros formatos de data comuns.
Os pontos a seguir devem ser observados ao trabalhar com esses formatos de data e hora na automação:
Datas são especificadas na hora local; a sincronização deve ser executada manualmente ao trabalhar com datas em fusos horários diferentes.
Os tipos de data não de tempo do horário de verão.
A linha de tempo de data se torna descontínua para valores de data menor que 0 (antes do 30 de dezembro de 1899).Isso ocorre porque a parte de número inteiro do valor de data é tratada como assinados, quando a parte fracionária é tratada como sem sinal.Ou é a parte do número inteiro do valor de data pode ser positivo ou negativo, quando a parte fracionária do valor de data é adicionada à data sempre lógica total.A tabela a seguir mostra alguns exemplos:
Data e hora |
representação |
---|---|
27 de dezembro de 1899, Meia-noite |
-3.00 |
28 de dezembro de 1899, Meio-dia |
-2.50 |
28 de dezembro de 1899, Meia-noite |
-2.00 |
29 de dezembro de 1899, Meia-noite |
-1.00 |
30 de dezembro de 1899, 6... |
-0.75 |
30 de dezembro de 1899, Meio-dia |
-0.50 |
30 de dezembro de 1899, 6 AM.. |
-0.25 |
30 de dezembro de 1899, Meia-noite |
0.00 |
30 de dezembro de 1899, 6 AM.. |
0.25 |
30 de dezembro de 1899, Meio-dia |
0.50 |
30 de dezembro de 1899, 6... |
0.75 |
31 de dezembro de 1899, Meia-noite |
1.00 |
1º de janeiro de 1900, Meia-noite |
2.00 |
1º de janeiro de 1900, Meio-dia |
2.50 |
2 de janeiro de 1900, Meia-noite |
3.00 |
Cuidado |
---|
Observe que como 6:00 AM sempre é representado por um valor fracionário 0,25 independentemente se o número inteiro que representa o dia é que positivo (depois de 30 de dezembro de 1899) ou negativo (antes de 30 de dezembro de 1899), uma comparação simples de ponto flutuante classificaria erroneamente qualquer DATA que representa 6:00 AM um dia anteriormente de 30/12/1899 como posterior a DATA que representa 7:00 AM no mesmo dia. |
Mais informações sobre os problemas relacionados aos tipos de DATA e de COleDateTime pode ser encontrada em Classe de COleDateTime e Data e hora: Suporte de automação.