Último dia do mês, como?
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?
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.
Curtidas 0
Respostas
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
mantido é claro , valores válidos para o mes & {1..12};
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.
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].
Muito obrigado [b:29fedd010b]Marco Salles[/b:29fedd010b].
GOSTEI 0
Marco Salles
06/09/2009
entum ja que vc gostou , pudemos melhora-la um pouquinho mais
so m detalhe e nada 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