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ěrnou konverzi mezi textovým vyjádřením a hodnotou typu
TimeSpan bez 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í ve formátovacím předpisu se 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 cifry].
H - hodina (
0-23) [
2 cifry].
M - minuta (
0-59) [
2 cifry].
S - sekunda (
0-59) [
2 cifry].
T - milisekunda (
0-999) [
3 cifry].
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 den, 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é konverzi z textové podoby do podoby
TimeSpan se považují tyto chybějící položky jako
0.
Poznámka! Formátovací předpis umožňuje nastavit uživatelský formát časového rozpětí. Kromě toho existuje i systémový formát časového rozpětí. Viz:
FmtType 10.
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)