Converção de String da Data
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.
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
Curtidas 0
Respostas
Lehapan
31/03/2009
para melhor lhe ajudar, coloque a rotina que está ocorrendo o erro.
GOSTEI 0
Sebastiaoarm
31/03/2009
procedure exemplo;
var
Data: TDateTime;
Ano,
Mes,
Dia: Integer;
begin
Data := Now;
Ano := YearOf(Data);
Mes := MonthOf(Data);
Dia := DayOf(Data);
{ ... }
end;Isso?
GOSTEI 0
Sebastiaoarm
31/03/2009
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!
GOSTEI 0
Pestana_
31/03/2009
você tambem poderia fazer assim:
var
ano, mes, dia : word;
begin
DecodeDate(now, ano, mes, dia);
ShowMessage(IntToStr(dia)+´/´+IntToStr(mes)+´/´+IntToStr(ano));
end;
var
ano, mes, dia : word;
begin
DecodeDate(now, ano, mes, dia);
ShowMessage(IntToStr(dia)+´/´+IntToStr(mes)+´/´+IntToStr(ano));
end;
GOSTEI 0
Regito
31/03/2009
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.
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.
GOSTEI 0
Sebastiaoarm
31/03/2009
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.
GOSTEI 0
Regito
31/03/2009
Valew pela ajuda gente.
Consegui aqui movi o campo db para uma variável string e efetuei tratamento sobre esta ai deu certos.
Valew.
Consegui aqui movi o campo db para uma variável string e efetuei tratamento sobre esta ai deu certos.
Valew.
GOSTEI 0
Rodc
31/03/2009
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´;
GOSTEI 0
Regito
31/03/2009
Valeu!!!
Deu certo!!
Deu certo!!
GOSTEI 0