Share via


Função VariantTimeToSystemTime (oleauto.h)

Converte a representação variante de tempo em valores de hora do sistema.

Sintaxe

INT VariantTimeToSystemTime(
  [in]  DOUBLE       vtime,
  [out] LPSYSTEMTIME lpSystemTime
);

Parâmetros

[in] vtime

O tempo de variante a ser convertido.

[out] lpSystemTime

Recebe a hora do sistema.

Retornar valor

A função retorna TRUE em caso de êxito e FALSE caso contrário.

Comentários

Uma hora variante é armazenada como um valor real de 8 bytes (duplo), representando uma data entre 1º de janeiro de 100 e 31 de dezembro de 9999, inclusive. O valor 2.0 representa 1º de janeiro de 1900; 3.0 representa 2 de janeiro de 1900 e assim por diante. Adicionar 1 ao valor incrementa a data em um dia. A parte fracionária do valor representa a hora do dia. Portanto, 2,5 representa o meio-dia de 1º de janeiro de 1900; 3.25 representa 6:00 da manhã em 2 de janeiro de 1900 e assim por diante. Números negativos representam as datas anteriores a 30 de dezembro de 1899.

Usar a estrutura SYSTEMTIME é útil porque:

  • Ele abrange todos os períodos de tempo/data. A data/hora do MS-DOS é limitada a representar apenas essas datas entre 1/1/1980 e 31/12/2107.
  • Os elementos de data/hora são facilmente acessíveis sem a necessidade de fazer nenhuma decodificação de bits.
  • As funções de formatação getDateFormat e GetTimeFormat do Suporte à Linguagem Nacional recebem um valor SYSTEMTIME como entrada.
  • É o formato de dados de data e hora padrão do Win32 compatível com o Windows NT e o Windows 95.
A função VariantTimeToSystemTime aceitará datas inválidas e tentará corrigi-las ao resolver para uma hora VARIANT. Por exemplo, uma data inválida, como 29/02/2001, resolve para 1/3/2001. Somente os dias são fixos, portanto, os valores de mês inválidos resultam em um erro retornado. Os dias estão marcados para estar entre 1 e 31. Dias e dias negativos maiores que 31 resultam em um erro. Um dia menor que 31, mas maior que o dia máximo nesse mês tem o dia promovido para o dia apropriado do mês seguinte. Um dia igual a zero é resolvido como o último dia do mês anterior. Por exemplo, uma data inválida, como 0/2/2001, resolve a 31/1/2001.

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho oleauto.h
Biblioteca OleAut32.lib
DLL OleAut32.dll