[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 594: sizeof(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 650: sizeof(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 1110: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3903)
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 1110: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3903)
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 1110: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3903)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 5277: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3903)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 5277: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3903)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 5277: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3903)
Fórum Xmaker • Erro na function UltimoDiaDoMes
Página 1 de 1

Erro na function UltimoDiaDoMes

Enviado: Julho 2nd, 2013, 10:19 am
por Leão
Olá, estar rotina, que retorna o último dia do mês, existe um erro que não estou conseguindo
identificar, solicito ao suporte que analise-a.
Exemplo:
informo a data 01/09/2013
retorna vazio

informo a data 02/07/2013
retorna "/07/" is not valid integer value.

e outras data também.

uso assim:
XDateEdit2.Text:=UltimoDiaDoMes(XDateEdit1.DateText)+'/'+Mes(XDateEdit1.DateValue)+'/'+Ano(XDateEdit1.DateValue);



function UltimoDiaDoMes( MesAno: string ): string;
var
sMes: string;
sAno: string;
begin
sMes := Copy( MesAno, 1, 2 );
sAno := Copy( MesAno, 3, 4 );
if Pos( sMes, '01 03 05 07 08 10 12' ) > 0 then
UltimoDiaDoMes := '31'
else
if sMes <> '02' then
UltimoDiaDoMes := '30'
else
// if ( StrToInt( sAno ) mod 4 ) = 0 then
if (sMes = '02') and (StrtoInt(sAno) mod 4 = 0) then
UltimoDiaDoMes := '29'
else
UltimoDiaDoMes := '28';
end;


Obrigado,
Leão

Re: Erro na function UltimoDiaDoMes

Enviado: Julho 3rd, 2013, 12:12 am
por Suporte
Olá,

O erro esta no valor passado para a função, veja a forma correta seria como no exemplo abaixo:

Ultimo_dia := UltimoDiadoMes(Mes(DataAtual) + Ano(DataAtual));

Ou seja, o valor que deve ir para a função é uma string com apenas o mês e o ano, não a data com formatação.

Esperamos estar auxiliando, conte sempre conosco!

Re: Erro na function UltimoDiaDoMes

Enviado: Julho 4th, 2013, 11:22 pm
por Leão
Olá Suporte,

testei a forma acima, retorna apenas o dia do mês e errado:

var
data1:string;
begin
XDateEdit2.Text:=UltimoDiaDoMes(Mes(XDateEdit1.DateValue)+Ano(XDateEdit1.DateValue));

data1 := UltimoDiaDoMes(Mes(DataAtual) + Ano(DataAtual));

ShowMessage('mes e ano...: '+data1);

informe o dia 01/06/2013
retornará 31

Obrigado e aguardo
Leão

Re: Erro na function UltimoDiaDoMes

Enviado: Agosto 3rd, 2013, 4:46 am
por adassoft
Eu uso o seguinte:
Exemplo: Edit1.Text := IntToStr(DaysInAMonth(YearOf(DATE), MonthOf(DATE)));

No exemplo o edit irá receber o último dia do mês tomando como base a data do computador.

Re: Erro na function UltimoDiaDoMes

Enviado: Novembro 23rd, 2013, 11:25 am
por Leão
Cara, onde você encontrou essa função DaysInAMonth ?

Teste e ocorreu erro nela...

Leão

Re: Erro na function UltimoDiaDoMes

Enviado: Novembro 23rd, 2013, 11:28 am
por Leão
encontrei a resposta tem que informar na uses DateUtils

obrigado,
Leão