Dni tygodnia słownie

0

jak podbaną date zamienić na tekst chodzi mi np, aby wyświetlamo mi dni tygodnia.


0

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;
0

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 :)

0

a wystarczyło by poszukać w helpie :D

0

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 :)

0

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" ;) .

0

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" :)

0

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.

0

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 :)

0

a wystarczyło by poszukać w helpie

A czy to nie wynika przypadkiem z mojej odpowiedzi ?

[browar] nie zauważyłem

0

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1