Fórum Converção de String da Data #369513

31/03/2009

0

Por favor, alguém me ajude.
converto uma string em data e depois retiro o dia, ano e mês para calcular outras datas só que o ano não fica no formato correto quando converto para integer por exemplo converto 2009 para integer vira 217, utilizei as funções Strtoint e Formatdattime e o erro persiste.


Regito

Regito

Responder

Posts

31/03/2009

Lehapan

para melhor lhe ajudar, coloque a rotina que está ocorrendo o erro.


Responder

Gostei + 0

01/04/2009

Sebastiaoarm

procedure exemplo;
var
  Data: TDateTime;
  Ano,
  Mes,
  Dia: Integer;
begin
  Data := Now;
  Ano := YearOf(Data);
  Mes := MonthOf(Data);
  Dia := DayOf(Data);
  { ... }
end;


Isso?


Responder

Gostei + 0

01/04/2009

Sebastiaoarm

procedure exemplo;
var
  Data: TDateTime;
  Ano,
  Mes,
  Dia: String;
begin
  Data := Now;
  Ano := IntToStr(YearOf(Data));
  Mes := IntToStr(MonthOf(Data));
  Dia := IntToStr(DayOf(Data));
  { ... }
end;


Agora, sim!


Responder

Gostei + 0

01/04/2009

Pestana_

você tambem poderia fazer assim:

var
ano, mes, dia : word;
begin
DecodeDate(now, ano, mes, dia);
ShowMessage(IntToStr(dia)+´/´+IntToStr(mes)+´/´+IntToStr(ano));
end;


Responder

Gostei + 0

01/04/2009

Regito

Por favor, já usei a função YearOf(Data); mas acontece o mesmo erro a rotina é a seguinte:
var
i , bissexto, Ano, Mes, Dia: Integer;

begin
Dia:= StrToInt(Copy(DBprimeiroPagamento.Text, 1,2);
Mes:= StrToInt(Copy(DBprimeiroPagamento.Text, 4,2);
Ano:=:= StrToInt(Copy(DBprimeiroPagamento.Text, 7,4);

Entrando a data 10/04/2009, fica o seguinte resultado:
Dia = 10
Mes = 4
Ano = 217

Depois disto eu cálculo datas futuras adicionando um ao mês.

Aproveitando o tópico queria saber se tem como fazer que o mês fique 04 e não só 4.
Obrigado.


Responder

Gostei + 0

01/04/2009

Sebastiaoarm

var
  Data: String;
  Ano,
  Mes,
  Dia: Integer;
begin
  Data := ´10/04/2009´;
  Dia := StrToInt(Copy(Data, 1, 2));
  Mes := StrToInt(Copy(Data, 4, 2));
  Ano := StrToInt(Copy(Data, 7, 4));
  { ... }
  ShowMessage(IntToStr(dia)+´/´+IntToStr(mes)+´/´+IntToStr(ano));
end;


Certeza? Acabei de testar o código acima e deu certo.

Antes de executar o código, insira:

  ShowMessage(DBprimeiroPagamento.Text);


E veja qual a data exibida.


Responder

Gostei + 0

01/04/2009

Regito

Valew pela ajuda gente.
Consegui aqui movi o campo db para uma variável string e efetuei tratamento sobre esta ai deu certos.
Valew.


Responder

Gostei + 0

03/04/2009

Rodc

Aproveitando o tópico queria saber se tem como fazer que o mês fique 04 e não só 4.

ShortDateFormat := ´DD/MM/YYYY´;



Responder

Gostei + 0

07/04/2009

Regito

Valeu!!!
Deu certo!!


Responder

Gostei + 0

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

Aceitar