Compartir a través de


Función VariantTimeToSystemTime (oleauto.h)

Convierte la representación variante de tiempo en valores de hora del sistema.

Sintaxis

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

Parámetros

[in] vtime

Tiempo de variante que se va a convertir.

[out] lpSystemTime

Recibe la hora del sistema.

Valor devuelto

La función devuelve TRUE si se ejecuta correctamente y FALSE en caso contrario.

Comentarios

Una hora de variante se almacena como un valor real de 8 bytes (double), que representa una fecha entre el 1 de enero de 100 y el 31 de diciembre de 9999, ambos incluidos. El valor 2.0 representa el 1 de enero de 1900; 3.0 representa el 2 de enero de 1900, etc. Al agregar 1 al valor, se incrementa la fecha en un día. La parte fraccionarcional del valor representa la hora del día. Por lo tanto, 2.5 representa el mediodía del 1 de enero de 1900; 3.25 representa las 6:00 a.m. el 2 de enero de 1900, etc. Los números negativos representan las fechas anteriores al 30 de diciembre de 1899.

El uso de la estructura SYSTEMTIME es útil porque:

  • Abarca todos los períodos de fecha y hora. La fecha y hora de MS-DOS se limita a representar solo esas fechas entre el 1/1/1980 y el 31/12/2107.
  • Todos los elementos de fecha y hora son fácilmente accesibles sin necesidad de realizar ninguna descodificación de bits.
  • Las funciones de formato de hora y datos de compatibilidad con idiomas nacionales GetDateFormat y GetTimeFormat toman un valor SYSTEMTIME como entrada.
  • Es el formato de datos de fecha y hora de Win32 predeterminado compatible con Windows NT y Windows 95.
La función VariantTimeToSystemTime aceptará fechas no válidas e intentará corregirlas al resolver en una hora VARIANT. Por ejemplo, una fecha no válida como 29/29/2001 se resolverá en 3/1/2001. Solo se han corregido los días, por lo que los valores de mes no válidos producen un error que se devuelve. Se comprueba que los días estén comprendidos entre 1 y 31. Los días negativos y los días mayores que 31 producen un error. Un día menor que 31 pero mayor que el día máximo de ese mes tiene el día promocionado al día adecuado del mes siguiente. Un día igual a cero se resuelve como el último día del mes anterior. Por ejemplo, una fecha no válida, como el 0/2/2001, se resolverá en 31/1/2001.

Requisitos

Requisito Value
Plataforma de destino Windows
Encabezado oleauto.h
Library OleAut32.lib
Archivo DLL OleAut32.dll