Fórum Pegando dia de um Mes #236595

08/06/2004

0

Pessoal

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

Desde já, obrigado


Zunker

Zunker

Responder

Posts

08/06/2004

Fabio.hc

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;



Responder

Gostei + 0

08/06/2004

Zunker

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.


Responder

Gostei + 0

08/06/2004

Lucas Silva

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;



Responder

Gostei + 0

08/06/2004

Zunker

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


Responder

Gostei + 0

08/06/2004

Fabio.hc

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar