Condividi tramite


Funzione VariantTimeToSystemTime (oleauto.h)

Converte la rappresentazione variante del tempo in valori di ora di sistema.

Sintassi

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

Parametri

[in] vtime

Ora di variante da convertire.

[out] lpSystemTime

Riceve l'ora di sistema.

Valore restituito

La funzione restituisce TRUE per esito positivo e FALSE in caso contrario.

Commenti

Un tempo di variante viene archiviato come valore reale a 8 byte (doppio), che rappresenta una data compresa tra il 1° gennaio, il 100 e il 31 dicembre 9999, inclusiva. Il valore 2.0 rappresenta il 1° gennaio 1900; 3.0 rappresenta il 2 gennaio 1900 e così via. L'aggiunta di 1 al valore incrementa la data per un giorno. La parte frazionaria del valore rappresenta l'ora del giorno. Pertanto, 2,5 rappresenta il 1° gennaio 1900; 3.25 rappresenta le 6.00 A.M. il 2 gennaio 1900 e così via. I numeri negativi rappresentano le date precedenti al 30 dicembre 1899.

L'uso della struttura SYSTEMTIME è utile perché:

  • Si estende su tutti i periodi di data/ora. MS-DOS date/time è limitato a rappresentare solo tali date tra il 1/1/1980 e il 12/31/2107.
  • Gli elementi data/ora sono facilmente accessibili senza dover eseguire alcuna decodifica di bit.
  • Le funzioni di formattazione dei dati e della formattazione del linguaggio nazionale GetDateFormat e GetTimeFormat accettano un valore SYSTEMTIME come input.
  • È il formato di dati Win32 e data predefinito supportato da Windows NT e Windows 95.
La funzione VariantTimeToSystemTime accetta le date non valide e prova a correggerle quando si risolve in un'ora VARIANT. Ad esempio, una data non valida, ad esempio 2/29/2001, verrà risolta fino al 3/1/2001. Solo i giorni vengono corretti, quindi i valori del mese non validi generano un errore restituito. I giorni vengono controllati tra 1 e 31. Giorni negativi e giorni superiori a 31 generano un errore. Un giorno minore di 31 ma maggiore del giorno massimo in quel mese ha il giorno promosso al giorno appropriato del mese successivo. Un giorno uguale a zero viene risolto come ultimo giorno del mese precedente. Ad esempio, le date non valide, ad esempio 2/0/2001, verranno risolte a 1/31/2001.

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione oleauto.h
Libreria OleAut32.lib
DLL OleAut32.dll