Último dia do mês, como?

Delphi

06/09/2009

Alguem ja elaborou uma lógica ou já existe uma maneira de pegar o último dia do mês?

Estou precisando pegar o ultimo dia do mes de uma data. Tenho uma query que busca informações entre 2 datas, porem as datas são montadas dentro do meu programa. (Uma classe que tem apenas mes e ano) Por isso preciso pegar o último dia do mês. Se eu jogar dia 31 pra qualquer mes, o MSSQL vai xiar falando que o dia está fora do range dos dias. Isso acontece em alguns meses, pois não vão ate 31 dias.

Alguem pode me da uma luz?


.lg.

.lg.

Curtidas 0

Respostas

Marco Salles

Marco Salles

06/09/2009

Deve ter função pronta para isto .. se procurarmos aqui mesmo , veremos
alguma função nativa do delphi ,algo que vc deve dar preferencia

Mas a função abaixo deve funcionar

function RetornarUltimoDia(const Ano:word;mes:Word):Tdate;
begin
  mes:=mes+1;
  result:=encodedate(ano,mes,1)-1;
end;


mantido é claro , valores válidos para o mes & {1..12};


GOSTEI 0
.lg.

.lg.

06/09/2009

Bem pensado. Vai para o proximo mes e busca o primeiro dia. Diminuindo um dia terei o último dia do mês que eu quero. Lógica simples e eficaz.

Muito obrigado [b:29fedd010b]Marco Salles[/b:29fedd010b].


GOSTEI 0
Marco Salles

Marco Salles

06/09/2009

entum ja que vc gostou , pudemos melhora-la um pouquinho mais

function RetornarUltimoDia(const Ano:word;mes:Word):Tdate; begin mes:=mes+1; result:=encodedate(ano,mes,1)-1; end;


function RetornarUltimoDia(Const Ano, mes:integer):Tdate;
begin
   result:=encodedate(ano,mes+1,1)-1;
end;


so m detalhe e nada mais


GOSTEI 0
POSTAR