Fórum [Ajuda Delphi] - Function para validar data e colocar mês e Ano em um ciclo #613991

02/02/2021

0

Muito boa tarde Amigo, sou iniciante na linhguagem delphi, e me deparei com uma situação complexa para mim que estou iniciando agora, por isso peço-lhe ajuda, e desde já agradeço.

Preciso de uma Function que com base em uma data, ela me retorna mês e Ano , considerando o a seguinte Regra , o ciclo do mês não é do dia 01 ao último dia do mês e SIM o último dia do mês será dia 20 de cada mês , e o dia 21 será o primeiro dia do proximo mês.
Exemplo:

Data_Base | Retorno da Function
18/12/2020 | 12-2020
19/12/2020 | 12-2020
20/12/2020 | 12-2020
21/12/2020 | 01-2021 << Vejam aqui que do dia 21 Dez 2020 , ele passará para o mês de Janeiro de 2021 até o dia 20/01/2021.
22/12/2020 | 01-2021
23/12/2020 | 01-2021
... e assim por diante até o dia 20/01/2021
18/01/2021 | 01-2021
19/01/2021 | 01-2021
20/01/2021 | 01-2021
21/01/2021 | 02-2021
22/01/2020 | 02-2021 assim por diante até o proximo mês

o que preciso é mudar o ciclo de fechamento de mês do dia 21 até o dia 20 do proximo mês.
Poderia me ajudar por favor...
Antecipo desde já cordial agradecimentos a todos.
Mauricio Gabriel

Mauricio Gabriel

Responder

Post mais votado

02/02/2021

Faça um teste com a função abaixo:

function retornaCiclo(data: TDate): string;
begin
  if DayOf(data) > 20 then
   data:= IncMonth(data, 1);

  Result := FormatDateTime('mm-yyyy', data);
end;


Exemplo de uso:

ShowMessage(retornaCiclo(DateTimePicker1.Date));

Natanael Ferreira

Natanael Ferreira
Responder

Gostei + 2

Mais Posts

02/02/2021

Natanael Ferreira

Faltou dizer que precisa ser adicionado DateUtils na uses do form
Responder

Gostei + 1

03/02/2021

Mauricio Gabriel

Bom dia amigo Natanael , vou testar agora de manhã e já lhe dou um feedback , mas muito obrigado pela ajuda prestada até momento.
Responder

Gostei + 0

03/02/2021

Mauricio Gabriel

Natanael , é isso mesmo, funcionou perfeitamente . Acertou o algo ... Obrigado por ajudar-me , esta ficará para meu aprendizado , e poder contribuir com outros .
Responder

Gostei + 0

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

Aceitar