Ir para conteúdo
  • Cadastre-se

dev botao

Visualizar dias iniciais do próximo mês - JvDateEdit


  • Este tópico foi criado há 1756 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Bom dia galera.

Eu utilizo os componentes JvDateEdit e JvDBDateEdit em meu projeto.

Quero saber se é possível visualizar no calendário desses DateEdit os dias finais do mês anterior e os iniciais do posterior.

Detalhe, vi que o componente JvDateTimePicker já faz isso.

Abaixo estão dois exemplos que encontrei na Internet:

image.png.ce969dd163faf67fab08a69a39c2a33c.pngimage.png.f401dfdeacde2d364f313f5c3d037cce.png 

Link para o comentário
Compartilhar em outros sites

Olá, acredito que voce não precise se orientar somente pelo componente da JEDIlib

basta pegar a data atual e usar o incmonth,
logo depois usar a funcao:


//##
Function PrimeiroDiaUtil(Data : TDateTime) : TDateTime;
var Ano, Mes, Dia : word;
DiaDaSemana : Integer;
begin
DecodeDate (Data, Ano, Mes, Dia);
Dia := 1;
DiaDaSemana := DayOfWeek(Data);
if DiaDaSemana = 1 Then
begin
Dia := 2;
end
else if DiaDaSemana = 7 Then
begin
Dia := 3;
end;
Result := EncodeDate (Ano, Mes, Dia);
end;
//##

para pegar o primeiro dia util do proximo mes,

para finalizar informe a data do mes anterior e também pegue o ultimo dia util:

//##
Function LastDayOfMonth (Data : TDateTime; lSabDom : Boolean) : TDateTime; 
var 
Ano, Mes, Dia : word; 
AuxData : TDateTime; 
DiaDaSemana : Integer; 
begin 
AuxData := FirstDayOfMonth (NextMonth (Data), False) - 1; 
if lSabDom Then 
begin 
DecodeDate (Auxdata, Ano, Mes, Dia); 
DiaDaSemana := DayOfWeek (AuxData); 
if DiaDaSemana = 1 Then 
Dia := Dia - 2 
else 
if DiaDaSemana = 7 Then 
Dec (Dia); 
AuxData := EnCodeDate (Ano, Mes, Dia); 
end; 
LastDayOfMonth := AuxData; 
end; 
//##

Se acessar o codigo fonte do Jedi verá que para implementar a diferença de cores no calendário eles usam uma função similar.

Caso precise use o decodedate para a sua data atual:

var
  ano, mes, dia: Word;
begin
  DecodeDate(data, ano, mes, dia);

e depois com inc e dec no mes voce tem o mes: atual, anterior e posterior.

Editado por AlexBecker
erro de digitacao
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1756 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.