Partilhar via


TIPO DE DATA

Observação

A biblioteca Microsoft Foundation Classes (MFC) e a Active Template Library (ATL) continuam a ser suportadas. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

O tipo DATE é implementado usando um número de ponto flutuante de 8 bytes. Os dias são representados por incrementos de números inteiros a partir de 30 de dezembro de 1899, à meia-noite como tempo zero. Os valores das horas são expressos como o valor absoluto da parte fracionária do número. A tabela seguinte ilustra várias datas juntamente com o seu equivalente numérico de tipo DATE:

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 da manhã. 5,25
4 de janeiro de 1900, meio-dia 5.50
4 de janeiro de 1900, 21h 5.875

O tipo de data DATA, assim como a COleDateTime classe, representa datas e horas como uma linha numérica clássica. A COleDateTime classe contém vários métodos para manipular valores DATE, incluindo conversão para e a partir de outros formatos de data comuns.

Os seguintes pontos devem ser observados ao trabalhar com estes formatos de data e hora na Automação:

  • As datas são especificadas em hora local; A sincronização deve ser realizada manualmente ao trabalhar com datas em diferentes fusos horários.

  • Os tipos de datas não têm em conta o Horário de Verão.

  • A linha temporal da data torna-se descontínua para valores de data inferiores a 0 (antes de 30 de dezembro de 1899). Isto deve-se ao facto de a parte número inteiro do valor da data ser tratada como assinada, enquanto a parte fracionária é tratada como não assinada. Por outras palavras, a parte inteira do valor da data pode ser positiva ou negativa, enquanto a parte fracionária do valor da data é sempre adicionada à data lógica global. A tabela seguinte ilustra 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, 18h00 -0.75
30 de dezembro de 1899, meio-dia -0,50
30 de dezembro de 1899, 6 da manhã. -0,25
30 de dezembro de 1899, meia-noite 0.00
30 de dezembro de 1899, 6 da manhã. 0.25
30 de dezembro de 1899, meio-dia 0.50
30 de dezembro de 1899, 18h00 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

Atenção

Note-se que, como as 6:00 AM são sempre representadas por um valor fracionário 0,25, independentemente de o número inteiro representar o dia ser positivo (após 30 de dezembro de 1899) ou negativo (antes de 30 de dezembro de 1899), uma simples comparação em ponto flutuante classificaria erroneamente qualquer DATA representando 6:00 AM de um dia anterior a 30/12/1899 como posterior a uma DATA que representa as 7:00 AM desse mesmo dia.

Mais informações sobre questões relacionadas com o DATE e COleDateTime os tipos podem ser encontradas em COleDateTime Class e Date and Time: Automation Support.

Consulte também

Data e Hora
Classe COleDateTime