Promotic

Reguła formatowania dla zakresu czasu (TimeSpan)

Reguła formatowania dla zakresu czasu (TimeSpan) określa tekstową (sformatowaną) postać przedziału czasu. Odpowiednio wytworzona reguła formatowania umożliwia dwukierunkową konwersję między wyrażeniem tekstowym a wartością typu TimeSpan bez utraty informacji.
 
Reguła formatowania zawiera zarówno stałe pozycje (np. separatory wewnątrz przedziału czasu) jak i pojedyncze pozycje przedziału czasu. Pozycje przedziału czasu muszą być w obowiązkowej kolejności od największej pozycji (dzień) do najmniejszej (milisekunda). Każda pozycja przedziału czasu (dzień, godzina, minuta, itd.) ma swój identyfikator (znak: D, H, M, itd.).
 
W regule formatowania pozycja przedziału czasu powinna być oznaczona znakiem procentu %, to odróżnia je od stałych elementów (separatorów). Po tym następuje opcjonalna liczba znaków (gdzie gwiazdka * oznacza minimalny wymagany rozmiar bez zer od lewej, np. zamiast 01.01. będzie 1.1.). Po tym następuje obowiązkowy identyfikator pozycji przedziału czasu.
 
Na przykład: "%N%d/%H:%M:%S.%T"
 
Składnia jednej pozycji przedziału czasu: %[*|1-9]id

Pozycje przedziału czasu:
N - Znak (+/-) [1 znak].
Ilość znaków 1 (domyślnie) wyświetli + lub - , natomiast ilość znaków 0 wyświetli - lub nic.
d - dzień (1-31) [2 cyfry].
H - godzina (0-23) [2 cyfry].
M - minuta (0-59) [2 cyfry].
S - sekunda (0-59) [2 cyfry].
T - milisekunda (0-999) [3 cyfry].
Ilość znaków oznacza tutaj precyzję po przecinku, więc 1=dziesiąte, 2=setne i 3=tysięczne.
 
Notatka! Kolejność pozycji przedziału czasu musi być podana od największej (dzień) do najmniejszej (milisekunda). Nie musi się jednak zaczynać od dni, ale od któregokolwiek z pozostałych elementów. Pierwsza (największa) znaleziona pozycja przedziału czasu:
1) zostanie zwiększona o przeliczone brakujące wyższe pozycje.
2) Będzie miała: domyślnie ilość znaków = *, więc jak trzeba.
 
Notatka! Pozycje przedziału czasu nie muszą być wymienione aż do najmniejszych pozycji. Może kończyć się na dowolnej pozycji. Ale wtedy informacje są tracone w formie tekstowej. Przy ponownej konwersji z postaci tekstowej do postaci TimeSpan, te brakujące pozycje są traktowane jako 0.

Przykłady dla TimeSpan 41/09:03:01.500:
"%N%d/%H:%M:%S.%T" będzie "+41/09:03:01.500"
"%*N%*d/%H:%M:%S.%T" będzie "41/09:03:01.500"
"%N%3d%H%M%S%T" będzie "+041090301500"
"%N%H:%M:%S.%T" będzie "+993:03:01.500" (993 = 41*24 + 9)
"%N%H:%M:%S" będzie "+993:03:01" (993 = 41*24 + 9)
© MICROSYS, spol. s r. o.