Data (15 ou 30)

Delphi

16/08/2005

Pessoal, eu tenho um formulario com um DateTimePicker e MaskEdit com formato de Data ´ / / ´, quando o usuario selecionar uma data no DateTimePicker que igual ou antes do dia 15/08/2005, o MaskEdit ira mostrar a data 30/08/2005, agora se o usuario selecionar uma data depois do 15/08/2005,(Ex: 20/08/2005) o MaskEdit irá mostrar 15/09/2005, isso será padrão, o MaskEdit terá que mostrar 15 ou 30 dentros respectivos mesês.

Obrigado


Leandrosl

Leandrosl

Curtidas 0

Respostas

Rjun

Rjun

16/08/2005

Fiz algo meio sem testar. Provavelmente você tera que adicionar um controle pra fevereiro.

var
  Dia, Mes, Ano: word;
  DataFutura: TDateTime;
begin
  Dia := DayOf(DateTimePicker.Date);
  Mes := MonthOf(DateTimePicker.Date);
  Ano := YearOf(DateTimePicker.Date);

  if Dia <= 15 then
    Dia := 30;
  end
  else
  begin
    Dia := 15;

    if Mes = 12 then
    begin
      Mes := 1;
      Ano := Ano + 1;
    end
    else
      Mes := Mes + 1;
  end;

  DataFutura := EncodeDate(Ano, Mes, Dia);
  MaskEdit1.Text := DateToStr(DataFutura);
end;



GOSTEI 0
Leandrosl

Leandrosl

16/08/2005

Rjun eu testei e é issi mesmo que eu quero, mais só que é o seguinte, se a data for igual a 15( Ex:15/08/2005), então o MaskEdit vai mostrar (Ex:30/08/2005), e no seu codigo ele está colocando (Ex:30/09/2005)

Obrigado


GOSTEI 0
Rjun

Rjun

16/08/2005

Você tem certeza que digitou o código corretamente. Veja no código que ele so executa alguma mudança no mes se o dia for superior a 15.


GOSTEI 0
Leandrosl

Leandrosl

16/08/2005

Rjun eu vo testar com mais calma e posto o resultado aqui, mais mesmo assim muito obrigado

Falou !!!!


GOSTEI 0
POSTAR