Promotic

Formátovací předpis pro časové rozpětí (TimeSpan)

Formátovací předpis pro časové rozpětí (TimeSpan) určuje textovou (naformátovanou) podobu časového rozpětí. Vhodně vytvořený formátovací předpis umožňuje obousměrný převod mezi textovým vyjádřením a hodnotou typu TimeSpan beze ztráty informace.
 
Formátovací předpis obsahuje jednak konstantní položky (např. oddělovače uvnitř časového rozpětí) a také jednotlivé položky časového rozpětí. Položky časového rozpětí musí být v závazném pořadí od největší položky (den) k nejmenší položce (milisekunda). Každá položka časového rozpětí (den, hodina, minuta, atd.) má svůj identifikátor (znak: D, H, M, atd.).
 
Položka časového rozpětí se ve formátovacím předpisu uvádí znakem procento %, tím se odliší od konstantních položek (oddělovačů). Následuje nepovinné určení počtu znaků (kde znak hvězdička * znamená minimální nutnou velikost bez nul zleva, např. místo 01.01. bude 1.1.). Následuje povinný identifikátor položky časového rozpětí.
 
Například: "%N%d/%H:%M:%S.%T"
 
Syntaxe jedné položky časového rozpětí: %[*|1-9]id
 
Položky časového rozpětí:
N - Znaménko (+/-) [1 znak]. Počet znaků 1 (přednastaveno) zobrazí + nebo - , zatímco počet znaků 0 zobrazí - nebo nic.
d - den (1-31) [2 znaky].
H - hodina (0-23) [2 znaky].
M - minuta (0-59) [2 znaky].
S - sekunda (0-59) [2 znaky].
T - milisekunda (0-999) [3 znaky]. Počet znaků zde znamená přesnost za desetinnou tečkou, takže 1=na desetiny, 2=na setiny a 3=na tisíciny.
 
Poznámka! Pořadí položek časového rozpětí se sice musí uvádět od největší (den) k nejmenší položce (milisekunda). Nemusí se však začínat položkou dny, ale kteroukoliv další. Přičemž první nalezená (největší) položka časového rozpětí:
1) Bude zvýšena o přepočtené chybějící vyšší položky.
2) Bude mít přednastaveno počet znaků *, takže podle potřeby.
 
Poznámka! Položky časového rozpětí se rovněž nemusí uvádět až po nejmenší položky. Může se končit kteroukoliv položkou. Pak se ovšem ztrácí v textové podobě informace. Při zpětném převodu z textové podoby do podoby TimeSpan se považují tyto chybějící položky jako 0.

Příklady pro TimeSpan 41/09:03:01.500:
"%N%d/%H:%M:%S.%T" bude "+41/09:03:01.500"
"%*N%*d/%H:%M:%S.%T" bude "41/09:03:01.500"
"%N%3d%H%M%S%T" bude "+041090301500"
"%N%H:%M:%S.%T" bude "+993:03:01.500" (993 = 41*24 + 9)
"%N%H:%M:%S" bude "+993:03:01" (993 = 41*24 + 9)
© MICROSYS, spol. s r. o.