Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
endo

armazenar data em variavel C

Recommended Posts

Oi pessoal esto com um problema em um dos meu programas, ele e bem facinho só que meu tempo está estourando para terminar ele, se alguém poder ajudar seira ótimo.

eu gostaria de armazenar em uma variavel a data atual de uma operação estou usando o copilador DEV C++ a velha linguagem C, estava fazendo assim

variavel = system ("date /t"); só que não funciona todo meu problema e esse.

quero a variavel com a data para depos usar essa data para calcular o juros de dias de atraso.

muito obrigado mesmo pela ajuda.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Cara... Acredito que isso possa vir a ser útil. é em c++, mas pode ser adaptado para c. trocando o cout<< por printf e outros..

    http://www.cplusplus.com/forum/beginner/6397/

    Oi lucaswb muito obrigado pela ajuda, mas deixa eu explicar um pouco melhor o que to querendo.

    tenho necessidade nesse programa só de armazenar a data em uma variavel para com ela fazer um calculo dentro do programa de um juros de atraso de pagamento, a data não pressisa ser impressa na tela. Quanto tenho a necessidade de imprimila uso o system ("date"); .

    obrigado mais uma vez.

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    #include <time.h>
    #include <stdio.h>

    // pega a data e hora atual e imprime na tela
    int main()
    {
    char dateStr[9];
    char timeStr[9];

    // pega a data atual
    _strdate( dateStr);
    printf_s( "The current date is %s \n", dateStr);

    // pega a hora atual
    _strtime( timeStr );
    printf_s( "The current time is %s \n", timeStr);

    getchar();
    return 0;
    }

    Tenha cuidado com a data! o formato é americano e por isso primeiro vem assim: mm/dd/aa

    Estou trabalhando numa forma de guardar os dados em uma struct para ficar mais fácil de calcular já posto aqui o resultado

    Editado por Leonardo Bos
    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    aqui está o código que guarda a data em uma struct, facilita a sua vida no cáculo agora:

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

    struct Data
    {
    int dia;
    int mes;
    int ano;
    };

    void ParseData(char str[9], Data *Alvo)
    {
    // 0, 1 = mes
    // 2 = /
    // 3, 4 = dia
    // 5 = /
    // 6, 7 = ano
    // 8 = NULO
    char _dia[3] = {
    str[3],
    str[4],
    0
    };
    char _mes[3] = {
    str[0],
    str[1],
    0
    };
    char _ano[3] = {
    str[6],
    str[7],
    0
    };
    Alvo->dia = atoi(_dia);
    Alvo->mes = atoi(_mes);
    Alvo->ano = atoi(_ano);
    return;
    }

    int main()
    {
    char dateStr[9];

    // pega a data atual
    _strdate( dateStr);
    printf_s( "The current date is %s \n", dateStr);

    Data atual;
    ParseData(dateStr, &atual);

    printf_s("A data está guarda na variavel 'atual'\n");

    // exemplo de como acessar a data atual
    int a = atual.ano;
    int b = atual.dia;
    int c = atual.mes;

    printf_s("por exemplo o dia atraves de int b: %i\n", ;

    getchar();
    return 0;
    }

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @Richie_Mata      para rodar esse código no codeblocks você precisa colocar ele como programa em c, pois se colocar com c++ ele não reconhece a função :

    _strdate(); 

    e também precisa colocar a palavra struct antes de

    Data *Alvo

     e

    Data atual

     e o printf não pode ter esse _s senão não funciona ,  e também remover esses comentários do programa .

    Editado por devair1010

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Acho que assim fica bem melhor: 

     

    #include <time.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <locale.h>

    typedef struct Data
    {
        int dia;
        int mes;
        int ano;
    };

    void  ParseData(char str[9],struct Data *Alvo)
    {
        char _dia[3] = {str[3],str[4],0};
        char _mes[3] = {str[0],str[1],0};
        char _ano[3] = {str[6],str[7],0};
        Alvo->dia = atoi(_dia);
        Alvo->mes = atoi(_mes);
        Alvo->ano = atoi(_ano);
        return;
    }

    int main()
    {
        setlocale(LC_ALL,"portuguese");
        char dateStr[9];

        // pega a data atual
        _strdate( dateStr);
        printf( "A corente data é: %s \n", dateStr);

        struct Data atual;
        ParseData(dateStr, &atual);

        printf("A data está guarda na variavel 'atual'\n");

        // exemplo de como acessar a data atual
        int a = atual.ano;
        int b = atual.dia;
        int c = atual.mes;

        printf("por exemplo o dia atraves de int b: %i\n");

        getchar();
        return 0;
    }
     

    Editado por Pedro M. Martins

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Então vou compartilhar mais uma maneira de fazer esta tarefa no Windows e outros.

     

    Lendo DATA:

    #include <stdio.h>
    #include <time.h>
    int main(void) {
        struct tm agora_data= {0};
        time_t tempo_data;
    
        time(&tempo_data);
        agora_data = *localtime(&tempo_data);
    
        puts("<?> Tempo agora");
        printf("<!>Agora-Dia: %d\n",agora_data.tm_mday);
        printf("<!>Agora-Mes: %d\n",agora_data.tm_mon+1);
        printf("<!>Agora-Ano: %d\n\n",agora_data.tm_year+1900);
    
        printf("<!>Agora-Hora: %d\n",agora_data.tm_hour);
        printf("<!>Agora-Min: %d\n",agora_data.tm_min);
        printf("<!>Agora-Seg: %d\n\n",agora_data.tm_sec);
        return 0;
        }

     

    Editado por Mauro Britivaldo
    É portável

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

    Direitos autorais

    Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

    ×