Ir ao conteúdo
  • Cadastre-se

armazenar data em variavel C


endo

Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
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

  • Curtir 1
Link para o comentário
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
Link para o comentário
Compartilhar em outros sites

  • 6 anos depois...

@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 .

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...

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;
}
 

Link para o comentário
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;
    }

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...