Partager via


Fonction VariantTimeToSystemTime (oleauto.h)

Convertit la représentation de variante de l’heure en valeurs d’heure système.

Syntaxe

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

Paramètres

[in] vtime

Heure de la variante à convertir.

[out] lpSystemTime

Reçoit l’heure système.

Valeur retournée

La fonction retourne TRUE en cas de réussite et FALSE dans le cas contraire.

Remarques

Une heure de variante est stockée sous la forme d’une valeur réelle de 8 octets (double), représentant une date comprise entre le 1er janvier 100 et le 31 décembre 9999 inclus. La valeur 2.0 représente le 1er janvier 1900 ; 3.0 représente le 2 janvier 1900, et ainsi de suite. L’ajout de 1 à la valeur incrémente la date d’un jour. La partie fractionnaire de la valeur représente l’heure de la journée. Par conséquent, 2,5 représente midi le 1er janvier 1900 ; 3.25 représente 6 :00 le 2 janvier 1900, et ainsi de suite. Les nombres négatifs représentent les dates antérieures au 30 décembre 1899.

L’utilisation de la structure SYSTEMTIME est utile car :

  • Il s’étend sur toutes les périodes de temps/date. La date/heure MS-DOS est limitée à représenter uniquement les dates comprises entre le 1/01/1980 et le 31/12/2107.
  • Les éléments date/heure sont tous facilement accessibles sans avoir à effectuer de décodage de bits.
  • Les fonctions de mise en forme de données et de mise en forme de l’heure de prise en charge des langues nationales GetDateFormat et GetTimeFormat prennent une valeur SYSTEMTIME comme entrée.
  • Il s’agit du format de données d’heure et de date Win32 par défaut pris en charge par Windows NT et Windows 95.
La fonction VariantTimeToSystemTime accepte les dates non valides et tente de les corriger lors de la résolution à une heure VARIANT. Par exemple, une date non valide telle que le 29/02/2001 sera résolue au 1/03/2001. Seuls les jours étant fixes, les valeurs de mois non valides entraînent le retour d’une erreur. Les jours sont vérifiés entre 1 et 31. Les jours négatifs et les jours supérieurs à 31 entraînent une erreur. Un jour inférieur à 31 mais supérieur au jour maximal de ce mois a le jour promu au jour approprié du mois suivant. Un jour égal à zéro est résolu comme le dernier jour du mois précédent. Par exemple, une date non valide telle que le 00/02/2001 sera résolue au 31/01/2001.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête oleauto.h
Bibliothèque OleAut32.lib
DLL OleAut32.dll