|
Gdy piszemy aplikację często chcemy by wyświetlała aktualną datę i godzinę. Istnieje kilka sposobów. Najprostszy sposób (13:48:04, 02-12-22): Label1.Caption := TimeToStr(Time) + #13 + DateToStr(Date);Czasochłonny sposób (14:3:23, 31-3-2002): var rok, miesiac, dzien, godziny, minuty, sekundy, msekundy : word; begin DecodeDate(Now, rok, miesiac, dzien); DecodeTime(Now, godziny, minuty, sekundy, msekundy); Label1.Caption := IntToStr(godziny) + ':' + IntToStr(minuty) + ':' + IntToStr(sekundy) + #13 + IntToStr(dzien) + '-' + IntToStr(miesiac) + '-' + IntToStr(rok); end;Sposób dający najwięcej możliwości: begin
Label1.Caption := x;
Dla x:
FormatDateTime('dd mmmm yyyy', Now) // 31 marzec 2002
FormatDateTime('dd mm yy', Now) // 31 03 02
FormatDateTime('dd mm yyyy', Now) // 31 03 2002
FormatDateTime('ddd dd mmmm yyyy', Now) // N 31 marzec 2002
FormatDateTime('dddd dd mmmm yyyy', Now) // niedziela 31 marzec 2002
FormatDateTime('dddd dd mm yyyy', Now) // niedziela 31 03 2002
FormatDateTime('dddd', Now) // niedziela
FormatDateTime('mmmm', Now) // marzec
FormatDateTime('hh mm ss', Now); // 14 26 20
end;
Dzień tygodnia można uzyskać także w inny sposób:var Data: TDateTime; dni: array[1..7] of string; begin dni[1] := 'Niedziela'; dni[2] := 'Poniedziałek'; dni[3] := 'Wtorek'; dni[4] := 'Środa'; dni[5] := 'Czwartek'; dni[6] := 'Piątek'; dni[7] := 'Sobota'; Data := Date; Label1.Caption := dni[DayOfWeek(Data)]; end;Sprawdzenie, czy rok jest przestępny. Rok jest przestępny gdy dzieli się przez 4 i (nie jest podzielny przez 100 lub jest podzielny przez 400) :) function Przestepny(Rok: Integer): Boolean; begin Result := (Rok mod 4 = 0) and ((Rok mod 100 <> 0) or (Rok mod 400 = 0)); end;wykorzystanie: if Przestepny(rok) then Label1.Caption := 'Tak' else Label1.Caption := 'Nie'; // (rok) - np. 2000 end;A na koniec sprawdzimy ile dni i godzin minęło pomiędzy dwiema datami: var
D1,D2:TDateTime;
begin
D1 := StrToDate('02-04-30'); // rok, miesiąc, dzień
D2 := StrToDate('02-04-1');
ShowMessage('Dni= '+FloatToStr(D1-D2)+' Godziny= '+FloatToStr((D1-D2)*24));
end;
To wszystko co miałem Wam do powiedzenia :) ...powrót |