|
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
rogerioclaro2 Experiente
Registrado: Quinta-Feira, 17 de Outubro de 2013 Mensagens: 404
|
Enviada: Sex Jul 05, 2019 10:17 am Assunto: Formatar data[RESOLVIDO] |
|
|
Pessoal, bom dia!
Preciso da ajuda de vocês novamente... tenho alguns casos aqui de datas:
2 01 01 = 01.01.2002
12 04 04 = 04.04.2012
84 01 06 = 06.01.1984
quando o valo tem 6 digitos... eu consegui separar, porém nao consegui colocar 2012 e nem 1984.. quando o campo tem 5 digitos eu nao consegui
Fiz dessa forma
Código: |
Var
dia, mes, ano : String;//format data
begin
if (DM.TblClientesdataCadastro.AsString <> '0') then
begin
ano:= Copy(DM.TblClientesdataCadastro.AsString, 0,2);
mes := Copy(DM.TblClientesdataCadastro.AsString, 3,2);
dia := Copy(DM.TblClientesdataCadastro.AsString, 5,2);
Linha := Linha + ''''+ dia + '.' + mes +'.'+ ano +''''+ ',';
end
else
begin
Linha := Linha + '' + 'null' + '' +',';
end;
|
Alguém tem alguma ideia de como posso fazer isso?
valeu pessoal!
Editado pela última vez por rogerioclaro2 em Seg Jul 08, 2019 9:07 am, num total de 1 vez |
|
Voltar ao Topo |
|
|
imex Moderador
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Jul 05, 2019 11:48 am Assunto: |
|
|
Bom dia,
Experimente mais ou menos dessa forma:
Código: | procedure TForm1.Button1Click(Sender: TObject);
begin
ShortDateFormat := 'yyyy.mm.dd';
DateSeparator := '.';
ShowMessage( DateToStr(StrToDate('2.1.31')) );
ShowMessage( DateToStr(StrToDate('12.04.30')) );
ShowMessage( DateToStr(StrToDate('84.01.31')) );
end; |
Espero que ajude
Editado pela última vez por imex em Ter Out 03, 2023 3:03 pm, num total de 1 vez |
|
Voltar ao Topo |
|
|
rogerioclaro2 Experiente
Registrado: Quinta-Feira, 17 de Outubro de 2013 Mensagens: 404
|
Enviada: Sex Jul 05, 2019 1:33 pm Assunto: |
|
|
ola imex, obrigado pela ajuda.. mas deu um erro ainda...
fiz assim
Código: |
var
Linha : String
begin
FormatSettings.ShortDateFormat := 'yyyy.mm.dd';
FormatSettings.DateSeparator := '.';
Linha := Linha + '''' + DateToStr(StrToDate(dm.tblClientesDATACADASTRO.AsString));
|
Porém, como no campo DATACADASTRO do banco esta assim 20101 ai executar ele retorna erro:
---------------------------
Programa
---------------------------
'101' is not a valid date.
---------------------------
OK
--------------------------- |
|
Voltar ao Topo |
|
|
imex Moderador
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Jul 05, 2019 2:33 pm Assunto: |
|
|
Experimente acrescentar os separadores. Ex:
Código: | var
Linha : String
s: string;
begin
FormatSettings.ShortDateFormat := 'yyyy.mm.dd';
FormatSettings.DateSeparator := '.';
s := RightStr('0' + dm.tblClientesDATACADASTRO.AsString, 6);
Linha := Linha + '''' + DateToStr(StrToDate(LeftStr(s, 2) + '.' + Copy(s, 3, 2) + '.' + RightStr(s, 2))); |
Espero que ajude |
|
Voltar ao Topo |
|
|
JoaoSHi Experiente
Registrado: Segunda-Feira, 25 de Agosto de 2008 Mensagens: 483
|
Enviada: Sex Jul 05, 2019 2:42 pm Assunto: |
|
|
Código: | procedure TForm1.Button2Click(Sender: TObject);
var
nDia,
nMes,
nAno:String;
begin
nDia := Copy(edit1.Text,Length(edit1.Text) - 1,2);
nMes := Copy(edit1.Text,Length(edit1.Text) - 3,2);
nAno := Copy(edit1.Text,1,Length(edit1.Text) - 4);
edit2.Text := 'Dia: ' + nDia + ' Mes: ' + nMes + ' Ano: ' + nAno;
end;
|
|
|
Voltar ao Topo |
|
|
rogerioclaro2 Experiente
Registrado: Quinta-Feira, 17 de Outubro de 2013 Mensagens: 404
|
Enviada: Sex Jul 05, 2019 3:29 pm Assunto: |
|
|
Valeu pessoal... vou testar e ja retorno obrigado |
|
Voltar ao Topo |
|
|
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|