Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

xl_delphi

[Resolvido] Dias da Semana com os dias do Mês

Recommended Posts

Boa tarde galera,

 

Qria saber se tem alguma forma de informar o dia da semana em um edit ex. segunda - feira e ao clicar num botão retornar todos os dias do mês que caem na segunda-feira.

Pesquisei, mas só achei o contrário, colocar a data e informar os dias da semana.

Alguém já viu alguma coisa parecida... Por favor se alguém souber ou tiver alguma idéia de como fazer, me ajudem... http://forum.imasters.com.br/public/style_emoticons/default/cry.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Maikel Scheid

 

é exatamente disso que eu preciso... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif só tenho mais uma pergunta...

Eu não conheço DaysInMonth(Date), mas pelo q vi ele pega sempre o mês atual.. Tem como fazer pra que apareça de 2 meses que não sejam necessariamente o mês atual ou o próximo??? http://forum.imasters.com.br/public/style_emoticons/default/upset.gif

 

Brigadão pela ajuda!!! http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade xl_delphi, ele pega o mês de acordo com a data passada por referência na função (onde está sendo passada o Date, que é uma função própria do delphi para retornar o dia atual).

 

Se você mudar o date por outra data válida a função DaysInMonth vai considerar o mês da data passada.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Chrnos,

 

como falei anteriormente não sei nd sobre essa função DaysInMonth e tb não sei como identificar onde está sendo passada o Date. O q eu fiz foi acessar o link do Maikel Scheid, e lá tem esse código:

 

procedure TForm1.Button1Click(Sender: TObject);

var

DiasMes : Integer;

i : integer;

DiaSemana : Integer;{1 Dom, 2 Seg, 3 Ter, 4 Qua, 5 Qui, 6 ---, 7 Sab}

{Use a uses DateUtils}

Dias : String;

begin

DiasMes := DaysInMonth(Date);

DiaSemana := 2;

for I := 1 to DiasMes do

begin

{Verifica os dias que são segunda-feira e adiciona a data na lista}

if DayOfWeek(StrToDate(IntToStr(i)+FormatDateTime('/MM/yyyy',Date))) = DiaSemana then

Dias := Dias + IntToStr(i)+FormatDateTime('/MM/yyyy',Date) + #13;

end;

ShowMessage(Dias);

end;

 

a única coisa q eu fiz foi ctrl+v e ctrl+c... http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif

 

você pode me ajudar a encontrar o local onde é passado esse date???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, o Date é uma função própria do delphi e está sendo passada para a função DaysInMonth nesta linha:

 

DiasMes := DaysInMonth(Date);

Ou seja... você precisa trocar o Date dos () pela data que quer usar de referência.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Chrnos,

 

Fiz como você falou:

 

Ou seja... você precisa trocar o Date dos () pela data que quer usar de referência.

Mas saiu algo errado, alterei o date e coloquei uma data ex. DiasMes := DaysInMonth(15/04/2009); e o ano q aparece é 1899. :unsure:

 

você pode me ajudar a sair dessa!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente assim

 

DiasMes := DaysInMonth(StrToDate('15/04/2009'))

 

Att

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde galera,

 

Ainda não consegui... http://forum.imasters.com.br/public/style_emoticons/default/upset.gif

 

Primeiro fiz assim:

 

procedure TForm1.Button1Click(Sender: TObject);

var

DiasMes : Integer;

i : integer;

DiaSemana : Integer;{1 Dom, 2 Seg, 3 Ter, 4 Qua, 5 Qui, 6 ---, 7 Sab}

{Use a uses DateUtils}

Dias : String;

begin

DiasMes := DaysInMonth(StrToDate('15/04/2009'))

DiaSemana := 2;

for I := 1 to DiasMes do

begin

{Verifica os dias que são segunda-feira e adiciona a data na lista}

if DayOfWeek(StrToDate(IntToStr(i)+FormatDateTime('/MM/yyyy',(StrToDate('15/04/2009')))= DiaSemana then

Dias := Dias + IntToStr(i)+FormatDateTime('/MM/yyyy',(StrToDate('15/04/2009'))) + #13;

end;

ShowMessage(Dias);

end;

 

deu o seguinte erro: Incompatible types: 'String' and 'Integer'

 

Depois tenteis assim:

 

procedure TForm1.Button1Click(Sender: TObject);

var

DiasMes : Integer;

i : integer;

DiaSemana : Integer;{1 Dom, 2 Seg, 3 Ter, 4 Qua, 5 Qui, 6 ---, 7 Sab}

{Use a uses DateUtils}

Dias : String;

begin

DiasMes := DaysInMonth(StrToDate('15/04/2009'));

DiaSemana := 2;

for I := 1 to DiasMes do

begin

if DayOfWeek(StrToDate(IntToStr(i)+FormatDateTime('/MM/yyyy',diasmes))) = DiaSemana then

Dias := Dias + IntToStr(i)+FormatDateTime('/MM/yyyy',diasmes) + #13;

end;

ShowMessage(Dias);

end;

 

Mas o ano sai 1900... Por favor me ajudem... http://forum.imasters.com.br/public/style_emoticons/default/cry.gif

 

Obg

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá

 

Abri o Delphi aqui e corrigi as duas rotinas, onde as mesmas seguem abaixo corrigidas e funcionando corretamente:

 

procedure TForm1.Button1Click(Sender: TObject);
var
DiasMes : Integer;
i : integer;
DiaSemana : Integer;{1 Dom, 2 Seg, 3 Ter, 4 Qua, 5 Qui, 6 ---, 7 Sab}
{Use a uses DateUtils}
Dias : String;
begin
DiasMes := DaysInMonth(StrToDate('15/04/2009'));
DiaSemana := 2;
for I := 1 to DiasMes do
begin
{Verifica os dias que são segunda-feira e adiciona a data na lista}
if DayOfWeek(StrToDate(IntToStr(i)+FormatDateTime('/MM/yyyy',(StrToDate('15/04/2009')))))= DiaSemana then
Dias := Dias + IntToStr(i)+FormatDateTime('/MM/yyyy',(StrToDate('15/04/2009'))) + #13;
end;
ShowMessage(Dias);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
DiasMes : Integer;
i : integer;
DiaSemana : Integer;{1 Dom, 2 Seg, 3 Ter, 4 Qua, 5 Qui, 6 ---, 7 Sab}
{Use a uses DateUtils}
Dias : String;
begin
DiasMes := DaysInMonth(StrToDate('15/04/2009'));
DiaSemana := 2;
for I := 1 to DiasMes do
begin
if DayOfWeek(StrToDate(IntToStr(i)+FormatDateTime('/MM/yyyy',StrToDate('15/04/2009')))) = DiaSemana then
Dias := Dias + IntToStr(i)+FormatDateTime('/MM/yyyy',StrToDate('15/04/2009')) + #13;
end;
ShowMessage(Dias);
end;

Seu problema no primeiro caso é a falta de alguns parenteses nas equaçoes. No segundo caso, você estava passando a variavel DiasMes como sendo uma variavel do tipo Date e a mesma é integer. Substitui a variavel pela data que você está verificando.

 

Att

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Tarde,

 

Desculpem a demora... fiquei tão feliz ao v q deu certo q fui logo colocar em prática e acabei esquecendo de voltar aqui pra agradecer e dizer q tá funcionando direitinho... Muito obrigado aos amigos q me ajudaram em especial Maikel Scheid. Vcs são 10 http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

Abraços!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.