Función SystemTimeToVariantTime (oleauto.h)

Convierte una hora del sistema en una representación variante.

Sintaxis

INT SystemTimeToVariantTime(
  [in]  LPSYSTEMTIME lpSystemTime,
  [out] DOUBLE       *pvtime
);

Parámetros

[in] lpSystemTime

Hora del sistema.

[out] pvtime

Hora de variante.

Valor devuelto

La función devuelve TRUE si se ejecuta correctamente y FALSE de lo 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 1900 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. Agregar 1 al valor 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 fechas anteriores al 30 de diciembre de 1899.

El tiempo de variante se resuelve en un segundo. Se omiten todos los milisegundos de la fecha de entrada.

Nota

Al trabajar con la hora de variante, tenga en cuenta el día adicional agregado en años bisiestos, lo que podría producir resultados inesperados si no se controla. Para obtener más información, consulte Preparación del año bisiesto.

La estructura SYSTEMTIME es útil por los siguientes motivos:

  • 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/31/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 tiempo y datos de compatibilidad de datos nacionales GetDateFormat y GetTimeFormat toman un valor LPSYSTEMTIME como entrada.
  • Es el formato de datos de fecha y hora predeterminado admitido por Windows.
La función SystemTimeToVariantTime aceptará fechas no válidas e intentará corregirlas al resolver una hora VARIANT. Por ejemplo, una fecha no válida, como el 2/29/2001, se resolverá en 3/1/2001. Solo los días son fijos, 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, las fechas no válidas como 2/0/2001 se resolverán en 1/31/2001.

Requisitos

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