Funzione SystemTimeToVariantTime (oleauto.h)

Converte un tempo di sistema in una rappresentazione variante.

Sintassi

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

Parametri

[in] lpSystemTime

Ora di sistema.

[out] pvtime

Ora variante.

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 1900 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 date precedenti al 30 dicembre 1899.

Il tempo di variante si risolve in un secondo. Tutti i millisecondi nella data di input vengono ignorati.

Nota

Quando si lavora con il tempo variante, tenere presente il giorno aggiuntivo aggiunto negli anni saltati, che potrebbe produrre risultati imprevisti se non gestito. Per altre informazioni, vedere Idoneità dell'anno successivo.

La struttura SYSTEMTIME è utile per i motivi seguenti:

  • 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 del tempo di supporto dati nazionali GetDateFormat e GetTimeFormat accettano un valore LPSYSTEMTIME come input.
  • È il formato di dati data/ora predefinito supportato da Windows.
La funzione SystemTimeToVariantTime 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