Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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.