Pegando dia de um Mes
Pessoal
Como eu faço por exemplo se eu quiser pegar todas as segundas do mes de junho
Desde já, obrigado
Como eu faço por exemplo se eu quiser pegar todas as segundas do mes de junho
Desde já, obrigado
Zunker
Curtidas 0
Respostas
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
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.
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
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
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).
O que preciso mesmo é converter o dia da semana em data (01/01/0001).
GOSTEI 0
Fabio.hc
08/06/2004
Vc precisa de uma data inicial.
Ex:
se a data inicial é 01/06/2004 - Terça.
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
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