Funzione GetDurationFormatEx (winnls.h)
Formatta una durata di tempo come stringa temporale per le impostazioni locali specificate in base al nome.
Sintassi
int GetDurationFormatEx(
[in, optional] LPCWSTR lpLocaleName,
[in] DWORD dwFlags,
[in, optional] const SYSTEMTIME *lpDuration,
[in] ULONGLONG ullDuration,
[in, optional] LPCWSTR lpFormat,
[out, optional] LPWSTR lpDurationStr,
[in] int cchDuration
);
Parametri
[in, optional] lpLocaleName
Puntatore a un nome delle impostazioni locali o uno dei valori predefiniti seguenti.
[in] dwFlags
Flag che specificano le opzioni di funzione. Se lpFormat non è impostato su NULL, questo parametro deve essere impostato su 0. Se lpFormat è impostato su NULL, l'applicazione può specificare LOCALE_NOUSEROVERRIDE per formattare la stringa usando il formato di durata predefinita del sistema per le impostazioni locali specificate.
[in, optional] lpDuration
Puntatore a una struttura SYSTEMTIME contenente le informazioni sulla durata del tempo da formattare. L'applicazione imposta questo parametro su NULL se la funzione deve ignorarla e usare ullDuration.
[in] ullDuration
Intero senza segno a 64 bit che rappresenta il numero di intervalli a 100 nanosecondi nella durata. Se vengono impostati sia lpDuration che ullDuration , il parametro lpDuration ha la precedenza. Se lpDuration è impostato su NULL e ullDuration è impostato su 0, la durata è 0.
[in, optional] lpFormat
Puntatore alla stringa di formato con caratteri, come illustrato di seguito. L'applicazione può impostare questo parametro su NULL se la funzione deve formattare la stringa in base al formato di durata per le impostazioni locali specificate. Se lpFormat non è impostato su NULL, la funzione usa le impostazioni locali solo per informazioni non specificate nella stringa di immagine di formato.
[out, optional] lpDurationStr
Puntatore al buffer in cui la funzione recupera la stringa di durata.
In alternativa, questo parametro recupera NULL se cchDuration è impostato su 0. In questo caso, la funzione restituisce le dimensioni necessarie per il buffer della stringa di durata.
[in] cchDuration
Dimensioni, in caratteri, del buffer indicato da lpDurationStr.
In alternativa, l'applicazione può impostare questo parametro su 0. In questo caso, la funzione recupera NULL in lpDurationStr e restituisce le dimensioni necessarie per il buffer della stringa di durata.
Valore restituito
Restituisce il numero di caratteri recuperati nel buffer indicato da lpDurationStr se ha esito positivo. Se lpDurationStr è impostato su NULL e cchDuration è impostato su 0, la funzione restituisce le dimensioni necessarie per il buffer stringa di durata, incluso il carattere null di terminazione. Se, ad esempio, 10 caratteri vengono scritti nel buffer, la funzione restituisce 11 per includere il carattere Null terminante.
La funzione restituisce 0 se non riesce. Per ottenere informazioni sull'errore estese, l'applicazione può chiamare GetLastError, che può restituire uno dei codici di errore seguenti:
- ERROR_INSUFFICIENT_BUFFER. Una dimensione del buffer fornita non è stata sufficiente oppure è stata impostata in modo errato su NULL.
- ERROR_INVALID_PARAMETER. Uno dei valori dei parametri non è valido.
Commenti
Questa funzione può essere usata con applicazioni multimediali che visualizzano l'ora di file e le applicazioni di eventi sportivi che visualizzano i tempi di fine.
La funzione ignora i primi tre membri della struttura SYSTEMTIME: wYear, wMonth e wDayOfWeek.
Questa funzione può recuperare i dati dalle impostazioni locali personalizzate. I dati non sono garantiti come uguali da computer a computer o tra esecuzioni di un'applicazione. Se l'applicazione deve mantenere o trasmettere dati, vedere Uso di dati locali persistenti.
Di seguito sono riportate le caratteristiche delle stringhe di formato di durata:
-
La formattazione dei caratteri è minuscola.
Nota Viene eseguita un'eccezione per la coerenza con GetTimeFormatEx.An exception is made for (H) to be consistent with GetTimeFormatEx.
- Stringhe di formato a due cifre per ore, minuti e secondi prepende uno zero iniziale se il valore è minore di 10.
- Il primo campo di output non è soggetto a alcun test dei limiti (ore<24, minuti<60, secondi<60, millisecondi<1000). I giorni non sono soggetti ai test dei limiti.
- La funzione presuppone che tutte le stringhe di formato siano in riduzione delle dimensioni del campo, ad esempio ore, minuti, secondi, millisecondi.
- Il primo campo da visualizzare è normalizzato, come definito dalla stringa di formato. Ad esempio, se l'applicazione specifica 310 secondi e la stringa di formato è m:ss, l'output è 5:10. Tuttavia, se la stringa di formato specifica minuti e secondi, ma l'applicazione specifica ore, il campo minuti viene modificato di conseguenza.
- Se le frazioni non sono il primo campo, il numero di caratteri "f" nella stringa di formato indica il numero di decimali da visualizzare (limite di 9). Se le frazioni sono il primo campo, il numero di caratteri "f" indica il numero di cifre significative sotto un secondo.
- Il round-off si verifica per troncamento, non per la regola di cinque round up e quattro round down.
- Le virgolette singole vengono usate per eseguire l'escape dei caratteri.
esempi
Di seguito sono riportati esempi di formati di durata e output corrispondenti per le durate di tempo specificate.
SYSTEMTIME = 14 giorni, 2 ore, 45 minuti, 12 secondi e 247 millisecondi
Formato | Output |
---|---|
d:hh:mm:ss | 14:02:45:12 |
hh:mm:ss:ff | 338:45:12:24 |
hh:mm:ss:fff | 338:45:12:247 |
h' h 'mm' m 'ss' s' | 338 h 45 m 12 s |
SYSTEMTIME = 345 secondi
Formato | Output |
---|---|
hh:mm:ss | 00:05:45 |
h:mm:ss | 0:05:45 |
mm:ss | 05:45 |
m:ss | 5:45 |
mm' m 'ss' s' | 05 m 45 s |
ss | 345 |
secondi di ss' | 345 secondi |
uulDuration = 51234567 (5,1234567 secondi)
Formato | Output |
---|---|
s.fff | 5.123 |
s.ffffffff | 5.123456 |
s.fffffffff | 5.123456700 (aggiunta di zeri finali) |
fff 'ms' | 5123 ms |
ffffff 'microsecondi' | 5123456 microsecondi |
fffffffff 'ns' | 5123456700 ns |
Requisiti
Client minimo supportato | Windows Vista [app desktop | App UWP] |
Server minimo supportato | Windows Server 2008 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | winnls.h (include Windows.h) |
Libreria | Kernel32.lib |
DLL | Kernel32.dll |