Pegando dia de um Mes

Delphi

08/06/2004

Pessoal

Como eu faço por exemplo se eu quiser pegar todas as segundas do mes de junho

Desde já, obrigado


Zunker

Zunker

Curtidas 0

Respostas

Fabio.hc

Fabio.hc

08/06/2004

Tente assim:

function QtdDiaSemana(Mdt: TDateTime; DiaSemana : Integer) : Integer;
{Mdt = qualquer dia do mes DiaSemana = dia da semana procurado ( 1 a 7) retorna o quantidade de dias}
var
   ano, mes, UltimoDia : word;
   mDtTemp : TDateTime;
   I : Integer;
begin
   MdtTemp := UltimodiaMes(Mdt);
   Decodedate(MdtTemp, ano, mes, UltimoDia);
   MdtTemp := EncodeDate(ano,mes,1);
   result := 0;
   for I := 1 to UltimoDia do
      begin
      if DayOfWeek(Mdttemp) = DiaSemana then
         Inc(Result);
      MdtTemp := Mdttemp + 1;
      end;
end;

function UltimoDiaMes(Mdt: TDateTime) : TDateTime;
{ retorna o ultimo dia o mes, de uma data fornecida}
var
   ano, mes, dia : word;
   mDtTemp : TDateTime;
begin
   Decodedate(mDt, ano, mes, dia);
   mDtTemp := (mDt - dia) + 33;
   Decodedate(mDtTemp, ano, mes, dia);
   Result := mDtTemp - dia;
end;



GOSTEI 0
Zunker

Zunker

08/06/2004

Tipo assim eu tenho uma tabela de modelo onde cadastro q dias da semana o carinha trabalha e quantas horas.

Então eu tenho q pegar essa tabela, e trasformar os dias da semana em 00/00/0000 e verificar se o dia que foi gerado naum é feriado, além do que, cada data que for fornecida eu tenho que gravar em um novo registro.

Por exemplo:
Pedro | Quinta | 12h

e transforma e grava na Tabela Agenda assim:
Pedro | 03/06/2004 | 12h
Pedro | 17/06/2004 | 12h
Pedro | 24/06/2004 | 12h

e já que dia 10/06/2004 é feriado, retorna uma mensagem que este dia é feriado.


GOSTEI 0
Lucas Silva

Lucas Silva

08/06/2004

para saber o último dia do mê,s vc também pode usar esta função que vem com o delphi
function EndOfTheMonth(const AValue: TDateTime): TDateTime;



GOSTEI 0
Zunker

Zunker

08/06/2004

Desculpe se estou sendo groseiro, mas eu naum preciso saber quantos dias da semana consta no mes ou o ultimo dia do mes.

O que preciso mesmo é converter o dia da semana em data (01/01/0001).


GOSTEI 0
Fabio.hc

Fabio.hc

08/06/2004

Vc precisa de uma data inicial.

Ex:
se a data inicial é 01/06/2004 - Terça.

procedure TForm1.Button1Click(Sender: TObject);
var X:integer;
    DataInicial:TDate;
begin
   DataInicial:=StrToDate(´01/06/2004´);
   For X:= 0 to ListBox1.Items.Count -1 do
      begin
      while DayOfWeek(DataInicial) <> DiadaSemana(ListBox1.Items[x]) do
         DataInicial:=DataInicial+1;
      ListBox2.Items.Add(DateToStr(DataInicial));
      end;
end;

Function DiadaSemana(DSemana : String) : Integer;
const semana : array[1..7] of string = (´Domingo´,´Segunda´,´Terça´,´Quarta´,´Quinta´,´Sexta´, ´Sábado´);
var X:integer;
begin
   Result:=0;
   for X:=1 to 7 do
      if DSemana = semana[X] then
         Result:=X;
end;


Neste exemplo eu coloquei os dias da semana no ListBox1.

Terça
Quarta
Quinta
Quinta
Quinta
Sexta
Segunda
Terça
Quarta
Quinta
Sexta
Segunda
Terça
Terça
Terça
Terça
Quarta
Quinta
Sexta
Segunda


GOSTEI 0
POSTAR