Poprawa godziny

Patryk27
Ten artykuł został przeznaczony do usunięcia. Powody możesz znaleźć na stronie: [[Artykuły do usunięcia]].

Pewnie każdego (w każdym razie większość) czasami irytuje wyświetlenie godziny tak: 85, zamiast tak: 805 ewentualnie tak 0805

W tym gotowcu pokażę, jak wyświetlić te zera (przy godzinie też):

Uses SysUtils;
{...}
Function WyswietlCzas(SekundeTez: Boolean): String;
Var H, M, S, Res: String;
    Ct          : Set of Char;
Begin
 Res := '';
 H := FormatDateTime('h', Now); // Przypisz godzinę
 M := FormatDateTime('n', Now); // Przypisz minutę
 S := FormatDateTime('s', Now); // Przypisz sekundę

 Ct := ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];

 if LenGth(H) = 1 Then // Można to usunąć, aby do godziny nie było dodawane zero
  if H[1] in Ct Then H := '0'+H; // Można to usunąć, aby do godziny nie było dodawane zero

 if LenGth(M) = 1 Then
  if M[1] in Ct Then M := '0'+M;

 if LenGth(S) = 1 Then
  if S[1] in Ct Then S := '0'+S;

 Res := H + TimeSeparator; // Time separator jest zapisane w module SysUtils (ten znak ":")
 if SekundeTez Then Begin
  Res := Res + M + TimeSeparator;
  Res := Res + S;
 End Else Res := Res + M;
                 
 Result := Res;
End;

I oczywiście, aby wyświetlić czas piszemy np.:

ShowMessage(WyswietlCzas(False)); // Wyświetli czas, bez sekund (np. 08:13)
ShowMessage(WyswietlCzas(True)); // Wyświetli czas z sekundami (np. 08:05:09)

Teraz już błędnie wyświetlona godzina Cię nie zirytuje :-)

3 komentarzy

ewentualnie Result := Format('%02d:%02d:%02d', [h, m, s])

No tak, teraz już wiem :)

FormatDateTime('hhss', Now) - jedno polecenie z odpowiednimi parametrami i nie trzeba pisać masy kodu.

Ct := ['1'..'2'] - tak też można...

"Teraz już błędnie wyświetlona godzina Cię nie zirytuje :-)" - teraz może mnie tylko zirytować rozwlekły i niepotrzebny kod... ;)