Ir para conteúdo
Fórum Script Brasil
  • 0

Conversao De Datas


Guest Dan Dao

Pergunta

Olá, tenho q fazer um programa q converta data do padrão americano para o brasileiro e vice-versa.....o cara digita a data no formato como nos Exemplos abaixo:

americano: 2005/12/23 tem q ficar 23/12/2005

brasileiro: 23/12/2005 tem q ficar 2005/12/23

alguém sabe fazer isso pra mim?

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Esse não é o padrão americano. Para o padrão americano é só inverter o mês com o dia, mas o ano permanece por último. Isso que você é tem um padrão tipo ISO, sendo que este seria com "-" e não com "/". Mas, que tipo de objeto você está utilizando para representar uma data?

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Ah tá, se está em uma vetor de chars (string) então é só uma questão de pegar as partes:

#include <stdlib.h>
#include <string.h>
#include <stdio.h>

int main() {
    char data[] = "2005/11/18";
    char ano[5], mes[3], dia[3];
    
    ano[0] = '\0';
    strncat(ano, data, 4);
    ano[4] = '\0';

    mes[0] = '\0';
    strncat(mes, data+5, 2);
    mes[2] = '\0';

    dia[0] = '\0';
    strncat(dia, data+8, 2);
    dia[2] = '\0';
    
    printf("%s/%s/%s\n", dia, mes, ano);
    
    system("pause");
}

Certo? wink.gif

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Ahh obrigado...testei aki e deu certinho,.....mas e se fosse o contrario? tipo passar de dd/mm/yyyy para yyyy/mm/dd? o que mudaria? E tem como você me explicar as linhas do programa? p mim entender o q esta sendo feito? Abraços!!!

Link para o comentário
Compartilhar em outros sites

  • 0
Ahh obrigado...testei aki e deu certinho,.....mas e se fosse o contrario? tipo passar de dd/mm/yyyy para yyyy/mm/dd? o que mudaria? E tem como você me explicar as linhas do programa? p mim entender o q esta sendo feito? Abraços!!!

Sim, claro. O importante ali é a função strncat() que permite copiar um pedaço de uma string em outra. No caso...

strncat(ano, data, 4);
... copia os *4* primeiros caracteres de *data* para *ano*. E...
strncat(mes, data+5, 2);
... copia os *2* primeiros caracteres de *data* para *ano*, a partir da *5ª* posição (por isso o +5). O mesmo vale para "dia", porém a partir da 8ª posição. E, a atribuição...
ano[0] = '\0';
... é para deixar a string "vazia", para que strncat concatene os dados no começo dela. Já...
ano[4] = '\0';

... é para determinar o final dela (após os dados serem inseridos).

No caso, basta alterar os valores nas chamadas de strncat() para poder pegar datas em outros formatos.

Certo? wink.gif

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...