Como pegar os dias da semana?

07/09/2004

Boa tarde a todos!

Pessoal, como posso saber, e armazenar em uma variável por exemplo todos os dias do mês que representam as terças feiras daquele mês?
Tenho que usar uma array para armazenar os dias?

Valeu!


Angelo


Angelo

Respostas

07/09/2004

Vinicius2k

Colega,

Construí este código... acho q está longe de ser ´ideal´, mas pode lhe ajudar a construir um melhorado...
{ Unit do Delphi com inúmeras funções para data e hora }
uses
  DateUtils;

{ Declarando o Array... creio que 5 elementos são suficientes, não me recordo
  se é possível que um mes tenha o mesmo dia da semana 6 vezes...}
var
  ArrayDeTercas: Array[0..5&93; of TDateTime;

{ A Procedure que irá acumular as terças... }
procedure GuardaTercas(Mes, Ano: Integer);
var i, Dia: Byte;
begin
  { "Zerando" o Array...}
  for i:= 0 to 5 do ArrayDeTercas&91;i&93;:= 0;
  { Guardando as datas }
  i:= 0;
  for Dia:= 1 to 31 do
  begin
    if IsValidDate(Ano, Mes, Dia) then
      if DayOfTheWeek(EncodeDate(Ano, Mes, Dia)) = 2 then
      begin
        ArrayDeTercas&91;i&93;:= EncodeDate(Ano, Mes, Dia);
        i:= i + 1;
      end;
   end;
end;

{ Exemplo de uso... }
procedure TForm1.Button1Click(Sender: TObject);
var i: Byte;
begin
  GuardaTercas(09,2004);
  Memo1.Clear;
  for i:= 0 to Length(ArrayDeTercas) - 1 do
    if ArrayDeTercas[i&93; <> StrToDate(´30/12/1899´) then
      Memo1.Lines.Add(DateToStr(ArrayDeTercas&91;i&93;));
end;


Espero ter ajudado...
T+


Responder Citar