jak podbaną date zamienić na tekst chodzi mi np, aby wyświetlamo mi dni tygodnia.
jak podbaną date zamienić na tekst chodzi mi np, aby wyświetlamo mi dni tygodnia.
Prościutko z helpa:
procedure TForm1.Button1Click(Sender: TObject);
var
ADate: TDateTime;
days: array[1..7] of string;
begin
days[1] := 'Sunday';
days[2] := 'Monday';
days[3] := 'Tuesday';
days[4] := 'Wednesday';
days[5] := 'Thursday';
days[6] := 'Friday';
days[7] := 'Saturday';
ADate := StrToDate(Edit1.Text);
ShowMessage(Edit1.Text + ' is a ' + days[DayOfWeek(ADate)];
end;
Prościutko z helpa:
procedure TForm1.Button1Click(Sender: TObject);
var
ADate: TDateTime;
days: array[1..7] of string;
begin
days[1] := 'Sunday';
days[2] := 'Monday';
days[3] := 'Tuesday';
days[4] := 'Wednesday';
days[5] := 'Thursday';
days[6] := 'Friday';
days[7] := 'Saturday';
ADate := StrToDate(Edit1.Text);
ShowMessage(Edit1.Text + ' is a ' + days[DayOfWeek(ADate)];
end;
A po co tracić czas na inicjalizację elementów tablicy przy każdym wywołaniu procedury? Może tak:
procedure TForm1.Button1Click(Sender: TObject);
const
Days: array[1..7] of string = ('Sunday', 'Monday', 'Tuesday',
'Wednesday', 'Thursday', 'Friday', 'Saturday');
var
ADate: TDateTime;
begin
ADate := StrToDate(Edit1.Text);
ShowMessage(Edit1.Text + ' is a ' + Days[DayOfWeek(ADate)];
end;
Ładniej i czytelniej :)
a wystarczyło by poszukać w helpie :D
a wystarczyło by poszukać w helpie :D
Taka odpowiedź pojawiałaby się w 95% postów :) Ale ja dzisiaj mam dobry humorek więc jestem miłosierny :)
A po co tracić czas na inicjalizację elementów tablicy przy każdym wywołaniu procedury?
To pytanie skieruj do programistów, którzy spisali Help w Delphi 7 :) .
a wystarczyło by poszukać w helpie
A czy to nie wynika przypadkiem z mojej odpowiedzi ?
Ale ja dzisiaj mam dobry humorek więc jestem miłosierny
Eh, no nie rób aż takiej łaski ;P . Zwłaszcza, że niewiele wniosłeś do rozwiązania "problemu" ;) .
A po co tracić czas na inicjalizację elementów tablicy przy każdym wywołaniu procedury?
To pytanie skieruj do programistów, którzy spisali Help w Delphi 7 :) .
a wystarczyło by poszukać w helpie
A czy to nie wynika przypadkiem z mojej odpowiedzi ?
Ale ja dzisiaj mam dobry humorek więc jestem miłosierny
Eh, no nie rób aż takiej łaski ;P . Zwłaszcza, że niewiele wniosłeś do rozwiązania "problemu" ;) .
Może masz rację, ale dla niektórych takie "niewiele" pt. pokazanie troche innej możliwości (zadeklarowanie tablicy stałych) oraz zaoszczędzenie paru instrukcji i niewielkie (ale zawsze :) ) zwiększenie czytelności podprogramu (przynajmniej dla mnie) to po prostu błogosławieństwo :) (skoro już o miłosierdziu mówimy to trzymajmy się tej terminologii :) ). Może niewiele, a może coś. Zależy od punktu widzenia. I zgadzam się z Twoim podpisem, 80% problemów to właściwie "problemy" :)
Można w ogóle nie deklarować nazw, a skorzystać z mechanizmów wbudowanych w system - czyli funkcji zwracającej nazwę dnia tygodnia w języku aktualnie ustawionym w systemie. Kiedyś o tym pisałem na forum, poszukajcie sobie.
No to może by tak w ogóle bez tablicy :)
procedure TForm1.Button2Click(Sender: TObject);
var
Dzien:string;
begin
case DayOfWeek(StrToDate(Edit1.text)) of
1: Dzien:='Sunday';
2: Dzien:='Monday';
3: Dzien:='Tuesday';
4: Dzien:='Wednesday';
5: Dzien:='Thursday';
6: Dzien:='Friday';
7: Dzien:='Saturday';
end;
ShowMessage(Edit1.text+' is a '+Dzien);
Pozdrowienia
PS Ups nie przeczytałem odpowiedzi pq i moje rozwiązanie wydaje się nieco nie na miejscu :)
a wystarczyło by poszukać w helpie
A czy to nie wynika przypadkiem z mojej odpowiedzi ?
[browar] nie zauważyłem
Jeśli Tobie nie zależy na wielkości liter pisanego dnia tygodnia to jedna linijka kodu wystarczy:
Label1.Caption := FormatDateTime('dddd', Now)
wynikiem jest nazwa dnia pisana małymi literami w języku używanym przez system