ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Formatar data[RESOLVIDO]

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
rogerioclaro2
Experiente
Experiente


Registrado: Quinta-Feira, 17 de Outubro de 2013
Mensagens: 404

MensagemEnviada: Sex Jul 05, 2019 10:17 am    Assunto: Formatar data[RESOLVIDO] Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Sex Jul 05, 2019 11:48 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
rogerioclaro2
Experiente
Experiente


Registrado: Quinta-Feira, 17 de Outubro de 2013
Mensagens: 404

MensagemEnviada: Sex Jul 05, 2019 1:33 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Sex Jul 05, 2019 2:33 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
JoaoSHi
Experiente
Experiente


Registrado: Segunda-Feira, 25 de Agosto de 2008
Mensagens: 483

MensagemEnviada: Sex Jul 05, 2019 2:42 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
rogerioclaro2
Experiente
Experiente


Registrado: Quinta-Feira, 17 de Outubro de 2013
Mensagens: 404

MensagemEnviada: Sex Jul 05, 2019 3:29 pm    Assunto: Responder com Citação

Valeu pessoal... vou testar e ja retorno obrigado
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB