Erro na function UltimoDiaDoMes
Enviado: Julho 2nd, 2013, 10:19 am
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
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